답변:
192.168.1.123
로컬 머신 에서 캐시 된 키를 제거하십시오 .
ssh-keygen -R 192.168.1.123
ssh-keyscan -t ecdsa my.server.domain >> ~/.ssh/known_hosts
그 후에 사용 하면 처음 호스트에 연결할 때 새 키를 확인할 필요가 없습니다.
내 경우 ssh-keygen -R ...
에는 경고를 수정하지 않았습니다. 나는 다음과 같은 추가 정보를 얻었습니다.
Offending key for IP in /home/myuser/.ssh/known_hosts:8
Matching host key in /home/myuser/.ssh/known_hosts:24
나는 단순히 ~/.ssh/known_hosts
8 행 ( "불쾌한 키")을 수동으로 편집 하고 삭제했다. 다시 연결을 시도했지만 호스트가 영구적으로 추가되었으며 그 후 모든 것이 정상이었습니다!
sed -e '8d' /home/myuser/.ssh/known_hosts
줄 번호 8
와 파일 이름을 시스템에 표시된 파일 이름으로 바꾸어 한 줄로 이것을 수정할 수 있습니다.
known_hosts:8
인덱스가 0 인 값을 나타내는 지 여부가 약간 혼란 스럽다는 것 입니다. 이것이 1 : 1 매핑이라는 것을 알게
ssh-keygen -R [hostname]:2022
LAN 컴퓨터와 두 개의 웹 호스팅 계정 사이에서 많은 ssh-ing을 수행하므로 모든 종류의 확률을 정렬하고 SSH 문제로 끝났습니다 ssh -v
.
이 문제를 방금 해결하고 답변에 만족하지 않으면 서 "왜"자신을 정말로 알고 싶었습니다.
내 경우의 트리거는 : 직장에서 새 서버 OS를 설치하고 openssh-server 패키지를 설치하면 직장 서버에서 새로운 호스트 키 세트가 생성되었습니다. 이전에는 모든 서버 OS가 Ubuntu였으며 이번에는 데비안으로 변경되었습니다 (권한에 미묘한 차이가있는 것 같습니다).
모든 OS가 Ubuntu이고 서버의 OS를 다시 설치하면 첫 번째 SSH에 이러한 종류의 경고가 표시됩니다. 위의 자동 경고보다 선호합니다!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
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:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.
그런 다음 ~/.ssh/known_hostsssh를 시작하는 컴퓨터에서 열어서 해당 줄을 삭제하고 다시 연결하면 다음과 같은 일이 발생합니다.
chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64
: 11122에 관한 그 비트는 방화벽에서 SSH를 라우팅하는 포트 번호입니다.
이전 우분투 서버에서 백업을 확인한 후 새로운 데비안 설치와는 다릅니다.
Ubuntu: Debian:
# Package generated configuration file # Package generated configuration file
# See the sshd(8) manpage for details # See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for # What ports, IPs and protocols we listen for
Port 22 Port 22
# Use these options to restrict which interface # Use these options to restrict which interfaces
#ListenAddress :: #ListenAddress ::
#ListenAddress 0.0.0.0 #ListenAddress 0.0.0.0
Protocol 2 Protocol 2
# HostKeys for protocol version 2 # HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_dsa_key
------------------------------------------------ HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security #Privilege Separation is turned on for security
UsePrivilegeSeparation yes UsePrivilegeSeparation yes
그렇습니다. 최근에 호스트는 ecdsa 키를 사용하기 시작했습니다. 요즘 우분투의 변경 사항을 기반으로 업데이트를 비난합니다. 내가 믿을 수있는 견고한 리눅스 OS에서 우분투의 변화는 이번에 데비안을 설치 한 이유이다.
ecdsa 에서 security.SE q / a를 읽었 으며 이미 sshd_config
새 데비안 서버 에서 해당 라인을 제거했습니다 . (도망 service ssh restart
)
ubuntu debian server
하면 내가 무슨 뜻인지 알 수 있습니다.
같은 사용자를 연결에 사용하고 있습니까?
사용자 John 과 같은 로컬 PC에 로그인하고 사용자 Adolf @ B 와 같은 서버 B에 연결 했는데 모든 것이 정상인 경우 사용자 Jane 과 같은 로컬 PC에 로그인 하고 서버에 연결해도 모든 것이 정상임을 의미하지는 않습니다. B 사용자와 같은 아돌프 @의 B .
당신의 PC에서 사용자 베다와 같은 서버 B에 로그인하려면 암호가없는, 모든 PC의에서이 명령을 시도 :
ssh-keygen -t rsa
이 명령은 키를 생성하고 파일에 키를 저장합니다. 암호를 비워 두십시오 .
ssh Beda@B mkdir -p .ssh
이 명령은 디렉토리가 없으면 작성합니다. 그렇지 않으면 오류 메시지를 인쇄하지 마십시오.
cd ~/.ssh
이 명령은 디렉토리를 사용자 홈 디렉토리 ./ssh로 변경합니다.
cat id_rsa.pub | ssh Beda@B 'cat >> .ssh/authorized_keys'
이 명령은 파일 id_rsa.pub (공개 키)을 서버의 authorized_keys 에 인쇄 합니다.
중요 : Beda는 연결중인 서버의 사용자 이름이고 B는 서버 IP입니다.
이제 비밀번호 나 비밀번호 문구없이 서버 B에 연결할 수 있습니다.
ssh Beda@B
질문 :이 원인은 무엇입니까? ...?
따라서 ssh 서버 호스트 키가 변경되었습니다. 변경의 원인은 무엇입니까? 말하기 어렵다. 다음은 몇 가지 추측입니다.
질문 : ... 어떻게 고치나요?
다른 사람이 이미 답변 했으므로 계정에서 캐시 한 myserver에 대해 캐시 된 ECDSA 호스트 키를 제거하십시오.
이 오류는 오랫동안 나를 귀찮게했습니다. 어떤 이유로 그것은 내가 할 것인지의 차이를 만들었습니다
ssh host
또는
ssh host.domain
https://askubuntu.com/questions/87449/how-to-disable-strict-host-key-checking-in-ssh
그런 다음 구성 파일을 변경하는 옵션을 알려줍니다. 프로세스 자동화에 대한 내 스크립트 https://askubuntu.com/a/949731/129227을 참조하십시오 .
CanonicalizeHostname
하고 CanonicalDomains
엄격한 검사를 제거 피할 것이다 및 SSH를 동일하게 호스트와 여기서 host.domain을 고려해야 할 것입니다.
Secure Shell을 제거하고 다시 설치하여 크롬 북 에서이 문제를 해결했습니다 ... 매력처럼 작동했습니다.
known_hosts
Chrome OS 에서 알려진 호스트 지문을 파일 에서 제거하는 방법은 다음과 같습니다 .
연결이 실패하면 ssh 출력에서 문제가되는 호스트 항목의 색인을 찾으십시오. 예를 들어 아래의 행에서 문제가되는 색인은 7입니다 .
Offending ECDSA key in /.ssh/known_hosts:7
Secure Shell 창의 JavaScript 콘솔 ( CTRL+ Shift+ J)을 열고 다음을 입력 INDEX
하여 적절한 값 (예 : 7 )으로 바꾸십시오 .
term_.command.removeKnownHostByIndex(INDEX);
이 솔루션은 Leo Gaggl 's Blog 에서 빌 렸습니다 .
The ECDSA host key for server has changed
. 내 방법은의 도메인에 대한 관련 캐시 문자열을 제거하는 것입니다~/.ssh/known_hosts
. 그런 다음 ssh가 작동합니다.