SSH 연결 오류 방지 방법:.ssh/known_hosts에서 특정 호스트를 삭제/삭제하지 않는 세 가지 처리 방법
(2020년 01월 24일: Ubuntu가 18.04LTE에서 운행 확인)
ssh 연결 오류 (경고) 가 발생하여 연결할 수 없을 때가 있습니다.
라는 내용을 담았다.
그러나 이런 방법들이 안전성이 좋은지는 각자의 판단이 필요하다.
#接続エラー
$ ssh remote_host
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
29:24:c2:69:a3:b0:dc:4d:23:fc:9d:85:9f:ea:01:9b.
Please contact your system administrator.
Add correct host key in /home/grgrjnjn/.ssh/known_hosts to get rid of this message.
Offending key in /home/grgrjnjn/.ssh/known_hosts:3
RSA host key for remote_host has changed and you have requested strict checking.
Host key verification failed.
왜?
SSH에서 고객은 안전한 연결을 위해 대상 서버의 정보(RSA 공개 키의 지문)를 저장합니다.SSH 연결 시 이전에 저장한 정보와 현재 연결하려는 서버의 정보가 일치하는지 확인하십시오.이렇게 하면 사용자(클라이언트)가 자신도 모르게 다른 서버에 연결되는 것을 방지한다.더 안전해야 돼.
오류 원인 knownhosts 설정 삭제 방법
저장된 연결 대상 서버의 정보(지문)를 삭제하면 새 연결이 되므로 오류를 방지할 수 있습니다.이 명령의 정답은
ssh-keygen -R hostname
이다.old를 설치한 후 백업도 자동으로 제작할 수 있습니다.#正解
$ ssh-keygen -R remote_host_name
/home/grgrjnjn/.ssh/known_hosts updated.
Original contents retained as /home/grgrjnjn/.ssh/known_hosts.old
실제 상황은 ~/.ssh/known_hosts
파일이기 때문에 직접 편집할 수도 있다.오류가 발생한 서버 이름(또는 IP 주소)에서 시작하는 행만 삭제합니다.sed 써도 되죠?
#sedを使ったやり方
$ sed -i '/remote_host_name/d' ~/.ssh/known_hosts
vi로만 편집해도 안 되는 건 아니에요.잘못된 방법을 간단히 소홀히 하다
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
가 발생하더라도 연결할 때-o 'StrictHostKeyChecking no'
옵션을 사용하는 방법과 설정 파일에 항상 이 옵션을 기재하는 방법이 있습니다.#エラーを無視する接続方法
$ ssh -o 'StrictHostKeyChecking no' remote_host_name
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for remote_host_name has changed,
and the key for the corresponding IP address 10.211.55.28
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/grgrjnjn/.ssh/known_hosts:1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
29:24:c2:69:a3:b0:dc:4d:23:fc:9d:85:9f:ea:01:9b.
Please contact your system administrator.
Add correct host key in /home/grgrjnjn/.ssh/known_hosts to get rid of this message.
Offending key in /home/grgrjnjn/.ssh/known_hosts:3
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Last login: Fri Feb 28 15:27:36 2014 from 10.211.55.27
이 방법을 사용하면 상기 명령 실행 결과를 똑똑히 볼 수 있으며 오류 외에 첫 연결(yes/no)?
에서의 상호작용 교환도 생략할 수 있다.#この対話処理も省略される
$ ssh remote_host_name
The authenticity of host 'remote_host_name (10.211.55.28)' can't be established.
RSA key fingerprint is 29:24:c2:69:a3:b0:dc:4d:23:fc:9d:85:9f:ea:01:9b.
Are you sure you want to continue connecting (yes/no)?
이 옵션을 항상 유효하게 하려면 설정 파일에 기록StrictHostKeyChecking no
합니다.전체 시스템에 적용하려면 /etc/ssh/ssh_config
에서 각 사용자에 대한 설정~/.ssh/config
을 다음과 같이 하십시오.#~/.ssh/config
StrictHostKeyChecking no
~/.ssh/config
가 없으면 새로 만듭니다.이 경우 권한에 유의하십시오.600 권한이 아닌 파일의 경우 SSH에 연결하는 동안 오류가 발생했습니다.#~/.ssh/configのパーミッション設定
$ chmod 600 ~/.ssh/config
이 설정을 하면 다음과 같이 경고를 보내지만 오류로 인해 멈추지 않고 상호작용 응답으로 연결되지 않습니다.#StrictHostKeyCheckingが設定されている場合の挙動
$ ssh remote_host_name
Warning: Permanently added 'remote_host_name' (RSA) to the list of known hosts.
Last login: Fri Feb 28 15:32:12 2014 from 10.211.55.27
만약에 이 동작을 하게 한다면 물론 안전성 위험에 대해 충분히 논의해 주십시오.오류 방지를 위한 서버 측 설정 방법
서버 측에 연결된 RSA 공개 키의 지문이 바뀌었기 때문이라면 바꾸지 않는 방법도 있다.지문의 원형은
/etc/ssh/ssh_host_key.pub
등이다.이를 백업해 OS를 다시 설치한 뒤 다시 돌려보내거나 여러 서버에서 공유하면 된다.
#RHEL、CentOSの場合
/etc/ssh/moduli
/etc/ssh/ssh_config
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/sshd_config
내 CentOS 6다섯 가지 환경에서 권한은 다음과 같다.#CentOS6.5のパーミッション
$ ls -ld /etc/ssh/
drwxr-xr-x. 2 root root 4096 2月 11 21:06 2014 /etc/ssh/
$ ls -l /etc/ssh/
合計 156
-rw-------. 1 root root 125811 11月 23 07:40 2013 moduli
-rw-r--r--. 1 root root 2047 11月 23 07:40 2013 ssh_config
-rw-------. 1 root root 668 2月 11 19:21 2014 ssh_host_dsa_key
-rw-r--r--. 1 root root 590 2月 11 19:21 2014 ssh_host_dsa_key.pub
-rw-------. 1 root root 963 2月 11 19:21 2014 ssh_host_key
-rw-r--r--. 1 root root 627 2月 11 19:21 2014 ssh_host_key.pub
-rw-------. 1 root root 1675 2月 11 19:21 2014 ssh_host_rsa_key
-rw-r--r--. 1 root root 382 2月 11 19:21 2014 ssh_host_rsa_key.pub
-rw-------. 1 root root 3879 2月 11 21:06 2014 sshd_config
이상OpenSSH 시작하기(Amazon)
Reference
이 문제에 관하여(SSH 연결 오류 방지 방법:.ssh/known_hosts에서 특정 호스트를 삭제/삭제하지 않는 세 가지 처리 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/grgrjnjn/articles/9618510f12d964c2a43e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)