최근에 내 컴퓨터 중 하나를 최신 Ubuntu 22.04로 업그레이드했는데 이제 매우 이상한 SSH 서버 인증 문제가 발생했습니다. 상황에 대한 간략한 설명은 다음과 같습니다.
서버와 클라이언트 모두에 SSH 인증서 기반 인증을 사용하고 있습니다. 클라이언트 인증은 제대로 작동하지만(서버에 TrustedUserCAKeys
클라이언트 인증이 있음) 서버 인증이 작동하지 않습니다. 나는 그것을 가지고 있지만 @cert-authority *.example.com ecdsa-sha2-nistp521 AAAAE2VjZHN...
( /etc/ssh/ssh_known_hosts
올바르게 읽히고 strace를 통해 확인됨) 어떤 이유로 올바르게 사용되지 않습니다. 또는 실제로 사용될 수도 있지만 서버가 클라이언트에 인증서를 보내지 않습니다. 이 문제는 최신 버전(SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.1)을 사용하는 클라이언트에서만 발생하지만 이전 버전(SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.10)에서는 제대로 작동합니다. 다음은 이전 클라이언트와 새 클라이언트에 대한 SSH 디버그 로그에서 발췌한 내용입니다.
새 클라이언트 디버그 로그:
debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.9p1 Ubuntu-3ubuntu0.1
debug1: compat_banner: match: OpenSSH_8.9p1 Ubuntu-3ubuntu0.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to my.example.com:22 as 'myuser'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:+JwFUaD...
이전 클라이언트 디버그 로그:
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.10
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.9p1 Ubuntu-3ubuntu0.1
debug1: match: OpenSSH_8.9p1 Ubuntu-3ubuntu0.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to my.example.com:22 as 'myuser'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: [email protected]
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host certificate: [email protected] SHA256:+JwFUaD..., serial 10356 ID "my.example.com server certificate" CA ecdsa-sha2-nistp521 SHA256:KlV0xkm... valid from 2023-05-30T12:18:00 to 2023-06-06T12:19:31
debug1: Host 'my.example.com' is known and matches the ECDSA-CERT host certificate.
debug1: Found CA key in /etc/ssh/ssh_known_hosts:1
볼 수 있듯이 서버가 Server host key
예상한 대신 을 보냈습니다 Server host certificate
. 내가 볼 수 있는 유일한 차이점은 새 클라이언트가 kex 알고리즘을 사용하는 curve25519-sha256
반면 이전(기능적) 클라이언트 [email protected]
는 동일해야 한다는 것입니다. 방금 새 이름이 생겼어요.
여기서 무슨 일이 일어날지 아는 사람 있나요? 서버 및 클라이언트 서명 CA는 모두 ecdsa 키입니다(차이가 있는 경우).