SSH(Secure Shell)는 다른 컴퓨터의 쉘을 사용하여 명령어 실행이나 파일 전송 등을 할 수 있게 해주는 응용 프로그램입니다.
윈도우에서 SSH 명령어를 사용하는 방법과 config host 설정으로 간편하게 접속하는 방법에 대해 설명드리겠습니다.
SSH 설치
윈도우에 SSH를 설치하려면 설정에서 선택적 기능 페이지로 들어가야합니다.
OpenSSH 클라이언트 프로그램이 있는지 확인하고, 없으면 추가하면 됩니다.
OpenSSH 서버 프로그램도 있는데, 둘의 차이점은
클라이언트는 이 컴퓨터에서 외부 서버에 연결하고 싶을 때, 서버는 이 컴퓨터를 외부에서 연결하고 싶을 때 사용합니다.
Windows 11은 설정 > 시스템 > 선택적 기능에서 확인할 수 있습니다.
못찾겠으면 윈도우 검색창에서 선택적 기능을 검색하면 됩니다.
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>
만약에 포트번호 없이 명령어를 실행하면 22 포트로 접속을 시도합니다.
키파일이 없는 경우에는 ssh에서 기본으로 설정되어있는 키파일을 사용해서 접속을 시도합니다.
SSH Host 설정
접속할 때마다 위의 명령어를 매번 일일이 작성하면 번거롭기 때문에 Host를 설정하면 ssh + <설정한 host 이름>으로 바로 접속이 가능합니다.
Host 설정 방법
.ssh 폴더로 이동합니다.
이 컴퓨터에는 C:\Users\<사용자명>\.ssh에 있습니다.
여기에 config 파일을 만들어야 합니다.
확장명 없이 config로 파일을 생성하면 됩니다.
생성한 config 파일을 메모장같은 프로그램으로 열어서 다음과 같이 접속 정보를 입력합니다.
Host <원하는 호스트 이름>
HostName <IP>
User <Username>
IdentityFile <키 파일 경로>
위와 같이 입력하면 Host 설정이 완료됩니다.
들여쓰기는 여부는 상관없고, 파일 경로는 윈도우 경로를 사용해도 됩니다.
(파일 구분자 \, / 둘다 상관없음)
Host 정보로 ssh 접속 확인
ssh <host 이름>
위와 같이 설정하고 ssh <host 이름>으로 실행하면 접속이 됩니다.
Host SSH 접속이 안되는 경우
Host 설정하면서 알게된 ssh 접속이 안되는 경우를 정리해보았습니다.
1. Bad configuration option
위와 같이 설정하고 ssh 명령어를 실행하였습니다.
접속이 실패하였습니다.
잘못된 곳은 IdentifyFile -> IdentityFile입니다.
ㅋ..
2. Could not resolve hostname
config 설정을 하고 실행했는데, 계속 접속이 안되었습니다.
이름을 my-host 말고 다른걸로 사용하니까 접속이 됐습니다.
Host 이름을 my-host에서 dev로 변경하니까 접속이 됐습니다.
그런데 다시 my-host로 변경하니까 접속이 됐습니다...
접속이 되긴 했는데, 이 에러의 원인을 찾게되면 적어놓겠습니다.