
방금 다음을 사용하여 ECDSA 키를 생성했습니다 ssh-keygen
.
ssh-keygen -t ecdsa -b 521
그런 다음 이 키를 내 서버에 복사했습니다.
cat .ssh/id_ecdsa.pub | ssh myserver "tee -a .ssh/authorized_keys"
내 키가 파일에 있는지 확인했습니다.
그러나 연결을 시도하면 연결이 거부됩니다.
ssh -v -i .ssh/id_ecdsa myserver
로그:
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myserver [192.168.1.1] port 22.
debug1: Connection established.
debug1: identity file .ssh/id_ecdsa type 3
debug1: Checking blacklist file /usr/share/ssh/blacklist.ECDSA-521
debug1: Checking blacklist file /etc/ssh/blacklist.ECDSA-521
debug1: identity file .ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.1
debug1: match: OpenSSH_6.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 10:27:b8:78:2c:e1:e3:42:8e:e3:66:c4:cc:4e:f1:c0
debug1: Host 'myserver' is known and matches the RSA host key.
debug1: Found key in /home/naftuli/.ssh/known_hosts:73
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering ECDSA public key: .ssh/id_ecdsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
서버 로그에서 다음을 발견했습니다.
auth.info sshd[13874]: userauth_pubkey: unsupported public key algorithm: ecdsa-sha2-nistp521 [preauth]
내 클라이언트와 서버 모두 OpenSSH를 사용하고 있습니다. 서버의 OpenSSH 버전은 OpenSSH 6.1이고 내 클라이언트의 OpenSSH 버전은 OpenSSH 5.9입니다.
내 서버에서 어떤 키 알고리즘이 지원되는지 어떻게 알 수 있나요?
답변1
다른 많은 임베디드 시스템과 마찬가지로 OpenWrt는 다음을 사용합니다.드롭베어Linux 시스템에서 흔히 볼 수 있는 더 무거운 OpenSSH가 아닌 SSH 서버로 사용됩니다. 이전 버전의 dropbear는 RSA 및 DSA 키만 지원합니다. ECDSA에 대한 지원은 아직 추가되지 않았습니다.버전 2013.62(이것은 불과 며칠 전에 출시되었습니다).
Barrier Breaker(트렁크)에 곧 표시될 것입니다. 하지만 태도 조정에서는 볼 수 없습니다.
답변2
ecdsa
에서 지원됩니다openssh-서버 버전 5.7. 어떤 버전의 openssh-server를 실행하고 있나요? dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2
버전을 찾으려면 실행하세요 .
답변3
귀하의 시스템이레드햇 엔터프라이즈 리눅스 6.4(또는 그 이상) 또는페도라 19(또는 이전 버전), 여기서는 ECDSA가 제거되었습니다. 왜 그랬는지 자세한 내용은 없습니다(법적 이유일 수도 있음).https://www.mail-archive.com/[이메일 보호됨]/msg00755.html
답변4
나에게 이런 일이 일어났기 때문에 여기에 남깁니다.
1일차: 새 컴퓨터를 설정하고, 먼저 내 키를 복사하여 정상적으로 로그인할 수 있었습니다.
2일차: ed25519 키로 로그인할 수 없습니다. 뭐? RSA 키를 추가합니다. 효과가있다. 새로운 ed25519 키를 생성하고그것작동합니다... 하지만 제 예전 제품은 작동하지 않습니다. 뭐야?
테스트 후 루트의 .ssh/authorized_keys에 백업으로 키를 설치했고... 해당 파일에 대한 권한을 수정하는 것을 잊어버렸습니다. 그래서 openssh는 내 키를 블랙리스트에 등록하여 로그인할 수 없게 만들었습니다. /root/.ssh/authorized_keys의 권한을 수정하여 로그인할 수 있게 되었습니다.내 사용자로서.