Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows 10 기본 SSH 클라이언트 사용법: 설치부터 원격 접속, 파일 전송까지

Windows 10과 Windows Server 2019에는 기본(내장) SSH 클라이언트가 탑재되어 있습니다. ssh.exe를 사용하면 Putty, MTPuTTY 같은 서드파티 SSH 클라이언트 없이도 Linux/UNIX 서버, VMware ESXi 호스트 등 다양한 장비에 안전하게 접속할 수 있습니다. Windows의 네이티브 SSH 클라이언트는 OpenSSH 포팅 버전을 기반으로 하며, Windows 10 빌드 1809부터 기본 설치되어 제공됩니다.

Windows 10에서 OpenSSH 클라이언트 활성화(설치) 방법

OpenSSH 클라이언트는 RSAT처럼 Windows 10의 요청 시 기능(Features on Demand)에 포함되어 있습니다. Windows Server 2019와 Windows 10 1809 이상 빌드에서는 SSH 클라이언트가 기본적으로 설치되어 있습니다.

먼저 SSH 클라이언트가 설치되어 있는지 확인합니다:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

위 명령 실행 결과에서 OpenSSH 클라이언트가 이미 설치되어 있다면 State: Installed로 표시됩니다.

만약 설치되어 있지 않다면(State: Not Present) 다음 방법 중 하나로 설치할 수 있습니다:

  • PowerShell 명령: Add-WindowsCapability -Online -Name OpenSSH.Client*
  • DISM 사용: dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
  • 설정 → 앱 → 선택적 기능 → 기능 추가 메뉴에서 목록의 OpenSSH 클라이언트를 찾아 설치를 클릭합니다.

OpenSSH 바이너리 파일은 c:\Windows\System32\OpenSSH\ 폴더에 위치하며, 주요 실행 파일은 다음과 같습니다:

  • ssh.exe – SSH 클라이언트 실행 파일
  • scp.exe – SSH 세션에서 파일을 복사하는 도구
  • ssh-keygen.exe – RSA SSH 인증 키 생성 도구
  • ssh-agent.exe – RSA 키를 관리하는 에이전트
  • ssh-add.exe – SSH 에이전트 데이터베이스에 키를 추가하는 도구

참고로 이전 버전의 Windows에도 OpenSSH를 설치할 수 있습니다. GitHub에서 Win32-OpenSSH를 다운로드하여 설치하면 됩니다.

Windows 10에서 기본 SSH 클라이언트 사용하기

SSH 클라이언트를 사용하려면 PowerShell 또는 cmd.exe를 실행합니다. ssh.exe의 사용 가능한 옵션과 구문은 다음 명령으로 확인할 수 있습니다:

ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]

원격 서버에 SSH로 접속하려면 다음 명령을 사용합니다:

ssh username@host

SSH 서버가 표준 TCP/22가 아닌 다른 포트에서 실행 중이라면 포트 번호를 함께 지정합니다:

ssh username@host -p port

예를 들어 IP 주소가 192.168.1.102인 Linux 호스트에 root 계정으로 접속하려면 다음 명령을 실행합니다:

ssh root@192.168.1.102

첫 연결 시 호스트 키를 신뢰 목록에 추가할지 묻는 메시지가 표시됩니다. yes를 입력하고 Enter 키를 누르면 호스트 키 지문이 C:\Users\username\.ssh\known_hosts 파일에 저장됩니다.

이후 비밀번호 입력 프롬프트가 나타나는데, root 비밀번호를 입력하면 원격 Linux 서버의 콘솔이 열립니다(예시에서는 원격 서버에 CentOS가 설치되어 있습니다).

SSH를 사용하면 *Nix 계열 운영체제뿐 아니라 Windows에도 접속할 수 있습니다. Windows 10에 OpenSSH 서버를 구성하고 SSH 클라이언트로 접속하는 방법은 별도의 글에서 자세히 다룬 바 있습니다.

RSA 키 기반 SSH 인증을 사용하는 경우, 개인 키 파일 경로를 다음과 같이 지정하여 접속할 수 있습니다:

ssh root@192.168.1.102 -i "C:\Users\username\.ssh\id_rsa"

개인 키를 SSH-Agent에 등록해 두면 더욱 편리합니다. 먼저 ssh-agent 서비스를 활성화하고 자동 시작으로 설정합니다:

set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agent

그다음 개인 키를 ssh-agent 데이터베이스에 추가합니다:

ssh-add "C:\Users\username\.ssh\id_rsa"

이후에는 SSH 접속 시 RSA 키 경로를 지정하지 않아도 키가 자동으로 사용됩니다. RSA 키에 별도의 암호를 설정하지 않았다면 비밀번호 입력 없이 안전하게 서버에 접속할 수 있습니다:

ssh root@192.168.1.102

그 외 알아두면 유용한 SSH 옵션은 다음과 같습니다:

  • -C – 클라이언트와 서버 간 트래픽을 압축합니다(느리거나 불안정한 연결 환경에서 유용)
  • -v – SSH 클라이언트의 모든 동작에 대한 상세 정보를 출력합니다
  • -R/-L – SSH 터널을 통한 포트 포워딩에 사용됩니다

SCP.exe로 SSH를 통해 파일 주고받기

Windows 10 SSH 클라이언트 패키지에 포함된 scp.exe 도구를 사용하면 로컬 컴퓨터의 파일을 SSH 서버로 복사할 수 있습니다:

scp.exe "E:\ISO\CentOS-8.1.x86_64.iso" root@192.168.1.202:/home

디렉터리 전체 내용을 재귀적으로 복사할 수도 있습니다:

scp -r E:\ISO\ root@192.168.1.202:/home

반대로 원격 서버의 파일을 로컬 컴퓨터로 가져오는 것도 가능합니다:

scp.exe root@192.168.1.202:/home/CentOS-8.1.x86_64.iso c:\iso

RSA 키 인증을 미리 구성해 두면 파일 전송 시 비밀번호를 입력할 필요가 없습니다. 예약 작업으로 자동 파일 복사를 구성할 때 특히 유용한 기능입니다.

이처럼 Windows 10에서는 별도의 서드파티 프로그램이나 도구 없이도 기본 제공되는 SSH 클라이언트로 원격 서버에 직접 접속하고, scp를 이용해 손쉽게 파일을 주고받을 수 있습니다.