최신 리눅스(Fedora33)에 rsa 키 인증이 안되는 문제
PROBLEM DESCRIPTION or QUESTION
Fedora 33에 RSA 키로 접속 시 다음과 같은 메시지가 나오고 접속이 거부됩니다.
Connecting to 192.168.11.228:22... Connection established. To escape to local shell, press Ctrl+Alt+]. [14:47:16] Version exchange initiated... [14:47:16] server: SSH-2.0-OpenSSH_8.4 [14:47:16] client: SSH-2.0-nsssh2_7.0.0006 NetSarang Computer, Inc. [14:47:16] SSH2 is selected. [14:47:16] Outgoing packet: 20 (0x14: SSH2_MSG_KEXINIT) [14:47:16] Incoming packet: 20 (0x14: SSH2_MSG_KEXINIT) [14:47:16] Algorithm negotiation initiated... (Dialog mode) [14:47:16] key exchange: curve25519-sha256@libssh.org [14:47:16] host key: rsa-sha2-256 [14:47:16] outgoing encryption: chacha20-poly1305@openssh.com [14:47:16] incoming encryption: chacha20-poly1305@openssh.com [14:47:16] outgoing mac: hmac-sha2-256-etm@openssh.com [14:47:16] incoming mac: hmac-sha2-256-etm@openssh.com [14:47:16] outgoing compression: none [14:47:16] incoming compression: none [14:47:16] Outgoing packet: 30 (0x1e: SSH2_MSG_KEXDH_INIT) [14:47:16] Incoming packet: 31 (0x1f: SSH2_MSG_KEXDH_REPLY) [14:47:16] Host authentication initiated... [14:47:16] Hostkey fingerprint: [14:47:16] rsa 3072 8a:c3:90:89:16:7a:43:ad:db:ca:d5:7d:91:c0:7e:c1 [14:47:16] Accepted. Verifying host key... [14:47:16] Verified. [14:47:16] Outgoing packet: 21 (0x15: SSH2_MSG_NEWKEYS) [14:47:16] Incoming packet: 21 (0x15: SSH2_MSG_NEWKEYS) [14:47:16] Outgoing packet: 5 (0x05: SSH2_MSG_SERVICE_REQUEST) [14:47:16] Incoming packet: 6 (0x06: SSH2_MSG_SERVICE_ACCEPT) [14:47:16] User authentication initiated... (Dialog mode) [14:47:17] Sent user name 'test'. [14:47:17] Outgoing packet: 50 (0x32: SSH2_MSG_USERAUTH_REQUEST) [14:47:17] Incoming packet: 51 (0x33: SSH2_MSG_USERAUTH_FAILURE) [14:47:23] Outgoing packet: 50 (0x32: SSH2_MSG_USERAUTH_REQUEST) [14:47:23] Sent public key blob, type:ssh-rsa. [14:47:23] Incoming packet: 51 (0x33: SSH2_MSG_USERAUTH_FAILURE) [14:47:23] Server rejected the public blob.
RESOLUTION
해당 SSH 서버가 Xshell이 지원하는 ssh-rsa 키 형식을 받아 들이지 않기 때문입니다. 2021년 01월 29일 이후 배포 중인 Xshell 7 Build 0056는 rsa-sha2-256 및 rsa-sha2-512 알고리즘을 지원하고 있어 해당 서버에 접속이 가능합니다.
OpenSSH는 8.3 배포 당시 향후 ssh-rsa 키 형식을 기본 값에서 배제할 것임을 밝혔습니다.
Fedora 33은 OpenSSH 8.4를 기본으로 제공하고 있고 이 서버에서는 OpenSSH의 예고처럼 ssh-rsa 형식이 기본 값에서 빠져 있습니다.
해결책
다음 중 어느 하나를 사용합니다.
- Xshell 7 Build 0056(2021-01-29 배포) 이상의 패키지를 사용합니다.
- Xshell에서 ED2519 또는 ECDSA 형식의 키를 사용합니다.
Fedora 33에서 암호 정책을 바꾼 후 SSH 서버를 다시 시작합니다.
# update-crypto-policies --show; update-crypto-policies --set LEGACY; systemctl restart sshd
SSH 서버 설정 파일에 ssh-rsa 형식을 추가합니다.(보안상의 이유로 제외한 것이므로 권장하지 않습니다.)
'PubkeyAcceptedKeyTypes +ssh-rsa'를 Include 항목 앞에 추가합니다.# vi /etc/ssh/sshd_config
... PubkeyAcceptedKeyTypes +ssh-rsa ... # To modify the system-wide sshd configuration, create a *.conf file under # /etc/ssh/sshd_config.d/ which will be automatically included below Include /etc/ssh/sshd_config.d/*.conf ...
# systemctl restart sshd