저는 오랫동안 오래된 Linux 서버(CentOS 6.5)를 유지관리해 왔습니다. "pub key auth"를 사용하여 ssh를 통해 Linux 서버에 액세스합니다.
이제 방금 새 Windows(win10 또는 11은 확실하지 않음) 노트북을 구입하고 "Git for win 2.33"을 설치했으며 평소처럼 새 노트북에서 ssh를 시도하면 다음과 같은 결과가 나타납니다.
$ ssh -i ~/.ssh/id_rsa.bridge_to_home -p 5122 -vv shaozr@{ip addr}
OpenSSH_8.8p1, OpenSSL 1.1.1m 14 Dec 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolve_canonicalize: hostname 27.115.62.170 is address
debug1: Connecting to 27.115.62.170 [27.115.62.170] port 5122.
debug1: Connection established.
debug1: identity file /c/Users/43141/.ssh/id_rsa.bridge_to_home type -1
debug1: identity file /c/Users/43141/.ssh/id_rsa.bridge_to_home-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.8
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: compat_banner: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000002
debug2: fd 4 setting O_NONBLOCK
debug1: Authenticating to 27.115.62.170:5122 as 'shaozr'
debug1: load_hostkeys: fopen /c/Users/43141/.ssh/known_hosts: No such file or directory
debug1: load_hostkeys: fopen /c/Users/43141/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],rsa-sha2-512,rsa-sha2-256
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: host key algorithms: ssh-rsa,ssh-dss
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: MACs ctos: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: MACs stoc: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
debug1: kex: host key algorithm: (no match)
Unable to negotiate with 27.115.62.170 port 5122: no matching host key type found. Their offer: ssh-rsa,ssh-dss
이것은 매우 이상합니다.
이전 PC에서 여전히 해당 Linux로 SSH를 통해 연결할 수 있고, 새 노트북에서 SSH를 통해(잘 알려진 git repo 공급자로) git clone을 수행할 수 있습니다.
양쪽 모두 "ssh OK"처럼 보이지만 CentOS6.6이 "Git for win 2.33"에서 내 id_ras 키를 거부하는 이유는 무엇입니까?
답변1
OpenSSH 9가 설치된 새 Windows 시스템에서 작업하는 동안 이 문제가 발생했습니다. 8.something에서 OpenSSH 팀은 기본적으로 이전 ssh-rsa 암호화 알고리즘을 비활성화한 것으로 나타났습니다. (바라보다https://www.openssh.com/releasenotes.html)
서버가 당신을 거부하는 것은 아닙니다. 이는 새 클라이언트가 기존 OpenSSH 데몬인 ssh-rsa를 사용하지 않기 때문입니다.할 수 있는말하다.
고객에게 다시 활성화하도록 지시할 수 있지만 이는 해결 방법입니다. 서버에서 SSH 데몬을 업그레이드해야 합니다. ssh-rsa 알고리즘은 안전하지 않고 최신 하드웨어에 의해 쉽게 깨질 수 있으므로 비활성화됩니다.
따라서 해결책은 클라이언트의 $HOME/.ssh/config에 ssh 구성 파일을 생성하고 여기에 다음 콘텐츠를 추가하는 것입니다.
Host HOSTNAME
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
HOSTNAME을 연결하려는 호스트 이름과 일치하는 정규식으로 바꾸십시오.