SSH Hostkey 확인 과정
보통 SSH로 어딘가에 접속할 때 내가 접속할 컴퓨터의 SSH Hostkey를 저장합니다. 저장할 땐 해당 컴퓨터의 IP와 함께 기억해둬요.
이렇게 함으로써, 서버 컴퓨터가 내가 알던 컴퓨터가 맞는 지 확인하는 과정을 수행할 수 있게 됩니다.
이 과정이 왜 필요하냐면, 만약 어떤 해커가 제 컴퓨터 네트워크를 건드려서 내가 만약 제대로 된 서버 IP 주소를 입력하더라도 해커가 원하는 컴퓨터로 접속하게끔 할 수 있는데요, 이럴 때 피해자가 그 서버에 로그인하는 과정에서 원래 서버의 ID와 비밀번호를 탈취할 수 있는 거죠.
그렇기 때문에 어떻게 보면 꼭 필요한 과정이기도 합니다.
근데 이 과정이 가끔 귀찮을 때가 있어요. 특히 IoT 개발이나 오드로이드, 라즈베리파이같은 SBC 개발자들은 여러 보드들을 연결해야 하는데, 가끔 Hostkey가 맞지 않아 접속할 수 없다는 오류 메세지가 나올 때가 있죠. 공유기는 사설 서브 네트워크에서 255개까지만 IP를 저장하기도 하고, DHCP 서버가 오랫동안 접속이 없던 네트워크 장비에 대해선 IP를 초기화하거든요.
현재 접속할 서버의 호스트 키가 컴퓨터에서 그 IP에 대해 기억 하고 있던 호스트 키와 다르면 아래와 같은 오류 메세지가 나타나면서 로그인을 할 수 없게 됩니다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
*****
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:1
RSA host key for ***** has changed and you have requested strict checking.
Host key verification failed.
그렇기 때문에 아예 이 과정을 비활성화하는 게 어떻게 보면 편합니다.
비활성화 방법
비활성화 방법은 궁극적으로 SSH configuration 파일에 특정 옵션을 넣는 것입니다.
- 시스템을 사용하는 모든 사용자들에게 옵션을 적용하려면
/etc/ssh/ssh_config
파일을 수정합니다.- 특정 사용자(로그인한 사용자)에게만 적용하려면
/home/$USER/.ssh/config
파일을 수정합니다.
설정 파일 가장 아래에 아래 형식으로 내용을 추가하면 됩니다.
- 모든 호스트에 대해 SSH 호스트 키 체크 비활성화
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
- 특정 호스트(서브 네트워크, 예를 들어 192.168.0.0/24)에 대해 SSH 호스트 키 체크 비활성화
Host 192.168.0.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
결과
비활성화 시킨 호스트들에 대해선 호스트 키 체크를 하지 않고 바로 암호를 물어보면서 로그인을 할 수 있게 됩니다.
awesometic@awesometic-DESKTOP:~ $ ssh root@192.168.0.10
Warning: Permanently added '192.168.0.10' (ECDSA) to the list of known hosts.
root@192.168.0.10's password:
출처
'Programming > OS, Program, Framework Tip' 카테고리의 다른 글
Elementary OS - Dropbox 등 트레이 아이콘 살리기 (0) | 2019.10.07 |
---|---|
Windows 10 WSL 2 체험, 리눅스 커널 빌드 성능 벤치마크 (0) | 2019.09.26 |
macOS - Unshaky, 맥북 나비식 키보드 중복 입력 오류 방지 (7) | 2019.08.08 |
macOS - VSCode + Vim 플러그인 사용할 때 키 반복 입력 방법 (0) | 2019.07.22 |