Study/OS

[Windows] SSH 설치, SSH Config 설정 방법 정리

 

SSH(Secure Shell)는 다른 컴퓨터의 쉘을 사용하여 명령어 실행이나 파일 전송 등을 할 수 있게 해주는 응용 프로그램입니다.

윈도우에서 SSH 명령어를 사용하는 방법과 config host 설정으로 간편하게 접속하는 방법에 대해 설명드리겠습니다.

 

SSH 설치

윈도우에 SSH를 설치하려면 설정에서 선택적 기능 페이지로 들어가야합니다. 

Windows 11 선택적 기능 관리 페이지
Windows 11 선택적 기능 관리 페이지

OpenSSH 클라이언트 프로그램이 있는지 확인하고, 없으면 추가하면 됩니다.

OpenSSH 서버 프로그램도 있는데, 둘의 차이점은 

클라이언트는 이 컴퓨터에서 외부 서버에 연결하고 싶을 때, 서버는 이 컴퓨터를 외부에서 연결하고 싶을 때 사용합니다.

 

Windows 11은 설정 > 시스템 > 선택적 기능에서 확인할 수 있습니다.

못찾겠으면 윈도우 검색창에서 선택적 기능을 검색하면 됩니다.

윈도우 검색창에서 선택적 기능 검색
윈도우 검색창에서 선택적 기능 검색

 

SSH 클라이언트가 잘 설치되었는지 확인하려면 명령 프롬프트 창을 열어서 ssh 명령어를 실행해보면 됩니다.

ssh 명령어 사용 가능한지 확인
ssh 명령어 사용 가능한지 확인

ssh 명령어를 실행했을 때 위와 같이 나온다면 ssh 명령어를 사용할 수 있는 상태입니다.

 

 

 

 

SSH 명령어로 외부 서버 접속 방법

접속하고자 하는 서버의 정보를 가지고 아래 명령어를 실행하면 됩니다.

# 사용자명 + IP로 접속
ssh <username>@<ip>

# 사용자명 + IP + 포트번호로 접속
ssh <username>@<ip> -p <port>

# 사용자명 + IP + 포트번호 + 키파일로 접속
ssh -i "<key-file-name>.pem" <username>@<ip> -p <port>

사용자명, IP, 포트 번호, 키파일로 ssh 접속
사용자명, IP, 포트 번호, 키파일로 ssh 접속

 

만약에 포트번호 없이 명령어를 실행하면 22 포트로 접속을 시도합니다.

키파일이 없는 경우에는 ssh에서 기본으로 설정되어있는 키파일을 사용해서 접속을 시도합니다.

 

SSH Host 설정

접속할 때마다 위의 명령어를 매번 일일이 작성하면 번거롭기 때문에 Host를 설정하면 ssh + <설정한 host 이름>으로 바로 접속이 가능합니다. 

 

Host 설정 방법

.ssh 폴더로 이동합니다.

이 컴퓨터에는 C:\Users\<사용자명>\.ssh에 있습니다.

.ssh 폴더 위치
.ssh 폴더 위치

 

여기에 config 파일을 만들어야 합니다.

확장명 없이 config로 파일을 생성하면 됩니다.

 

생성한 config 파일을 메모장같은 프로그램으로 열어서 다음과 같이 접속 정보를 입력합니다.

Host <원하는 호스트 이름>
HostName <IP>
User <Username>
IdentityFile <키 파일 경로>

접속하고자 하는 Host 정보 입력
접속하고자 하는 Host 정보 입력

위와 같이 입력하면 Host 설정이 완료됩니다.

들여쓰기는 여부는 상관없고, 파일 경로는 윈도우 경로를 사용해도 됩니다.

(파일 구분자 \, / 둘다 상관없음) 

 

Host 정보로 ssh 접속 확인

ssh <host 이름>

host 설정 정보로 ssh 접속 완료
host 설정 정보로 ssh 접속 완료

위와 같이 설정하고 ssh <host 이름>으로 실행하면 접속이 됩니다.

 

 

Host SSH 접속이 안되는 경우

Host 설정하면서 알게된 ssh 접속이 안되는 경우를 정리해보았습니다. 

 

1. Bad configuration option

Host 정보 입력
Host 정보 입력

위와 같이 설정하고 ssh 명령어를 실행하였습니다.

SSH 호스트명 접속 실패 - 잘못된 옵션
SSH 호스트명 접속 실패 - 잘못된 옵션

접속이 실패하였습니다.

잘못된 곳은 IdentifyFile -> IdentityFile입니다.

ㅋ..

 

2. Could not resolve hostname

설정한 host 이름으로 접속이 불가능
설정한 host 이름으로 접속이 불가능

config 설정을 하고 실행했는데, 계속 접속이 안되었습니다.

이름을 my-host 말고 다른걸로 사용하니까 접속이 됐습니다.

host 이름을 변경한 후 재접속
host 이름을 변경한 후 재접속

Host 이름을 my-host에서 dev로 변경하니까 접속이 됐습니다.

그런데 다시 my-host로 변경하니까 접속이 됐습니다...

다시 host명 변경 후 접속
다시 host명 변경 후 접속

접속이 되긴 했는데, 이 에러의 원인을 찾게되면 적어놓겠습니다.