서버A에서 생성한 RSA 공개 키를 이용하여 서버B, 서버C, 서버D에 SSH 접속을하였으나, 접속 대상 서버의 OpenSSH 버전이 업그레이드 되면서 RSA 공개 키를 통한 접근이 불가능한 상황 발생.
<RSA 키 생성 서버(서버A): OpenSSH 버전 : 6.6.1>
RSA 공개 키 접근이 가능했던 서버의 OpenSSH 버전(서버B): 동일 버전(6.6.1)
RSA 공개 키 접근이 불가능 했던 서버의 OpenSSH 버전(서버C, D): 7.4, 8.6
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
ssh-keygen -lf id_rsa.pub #만들어진 키의 서명 및 키 길이 확인.
2048 04:4e:ae:b5:be:ed:f1:0d:75:20:ca:3c:61:b9:df:e5(SHA1으로 서명된 2048길이의 RSA 키)
2048 SHA256:rYcCJ0sEsVvYaa69+ztedOfa421hoDeK/OAO4hoNeNM(SHA256으로 서명된 2048길이의 RSA 키)
sshd -T # 현재 ssh 설정 확인. sshd -T | grep pubkeyacceptedkeytypes로 공개 키 설정만 확인 가능
ssh -v user@hostname , ssh-vv user@hostname, ssh-vvv user@hostname #디버깅 모드, v,vv,vvv로 상세 레벨 설정
하위 버전의 OpenSSH를 사용 중인 서버에서 상위 버전의 OpenSSH를 사용하는 서버에 기존에 사용하던 RSA 공개 키를 통해 접근하게 될 경우 해당 이슈가 발생하게 되며 공개 키 설정에 ssh-rsa를 추가하여 기존 키 사용을 계속 할 수 있음.
하지만 보안 요건 상 RSA키를 계속 사용하는 것 보다 ecdsa 또는 ed25519 키를 사용하는 것을 권장.
https://www.openssh.com/txt/release-8.8
OpenSSH 8.8 was released on 2021-09-26. It is available from the
mirrors listed athttps://www.openssh.com/.
OpenSSH is a 100% complete SSH protocol 2.0 implementation and
includes sftp client and server support.
.
.
.
.
This release disables RSA signatures using the SHA-1 hash algorithm
by default. This change has been made as the SHA-1 hash algorithm is
cryptographically broken, and it is possible to create chosen-prefix
hash collisions for <USD$50K [1]
For most users, this change should be invisible and there is
no need to replace ssh-rsa keys. OpenSSH has supportedRFC8332
RSA/SHA-256/512 signatures since release 7.2 and existing ssh-rsa keys
will automatically use the stronger algorithm where possible.
Incompatibility is more likely when connecting to older SSH
implementations that have not been upgraded or have not closely tracked
improvements in the SSH protocol. For these cases, it may be necessary
to selectively re-enable RSA/SHA1 to allow connection and/or user
authentication via the HostkeyAlgorithms and PubkeyAcceptedAlgorithms
options. For example, the following stanza in ~/.ssh/config will enable
RSA/SHA1 for host and user authentication for a single destination host:
Host old-host
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
We recommend enabling RSA/SHA1 only as a stopgap measure until legacy
implementations can be upgraded or reconfigured with another key type
(such as ECDSA or Ed25519).