Programming/OS, Program, Framework Tip

Linux/macOS - SSH 접속 시 Hostkey 체크 비활성화 하는 방법

awesometic 2019. 8. 27. 16:46
반응형

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: 

출처

반응형