PROBLEM DESCRIPTION or QUESTION
...
key exchange 알고리즘 또는 host key 알고리즘이 없다고 나오면서 접속이 안됩니다.
RESOLUTION
...
리눅스의 SSH 서버가 허용하는 알고리즘을 클라이언트 프로그램인 Xshell이 지원하지 못해서 발생하는 문제입니다.
주로 오래된 Xshell 버전으로 비교적 최신 버전의 리눅스에 접속할 때 발생합니다.
또는 Xshell은 해당 OS의 기본 설정 시의 알고리즘을 지원하지만, 서버 관리자가 보안상의 이유 등으로 SSH 서버 설정을 새로 하여 기본 설정에서 지원하던 알고리즘이 배제된 경우일 수 있습니다.
두 가지의 해결책이 있습니다.
1. Xshell을 최신 버전으로 업그레이드하는 방법.
1. 유닉스/리눅스 SSH 서버가 해당 버전의 Xshell이 지원하는 알고리즘을 사용할 수 있도록 설정하는 방법.
다음은 위 두번째 방법인 SSH 서버의 설정을 변경하는 방법에 대한 안내로서 서버 관리자에게 Xshell 해당 버전에서 지원 가능한 알고리즘을 SSH 서버에도 등록할 수 있도록 요청해야 합니다.
해당 세션의 추적 기능을 켜고 접속해 보면 Xshell이 해당 세션에서 사용 중인 알고리즘과 서버가 지원하는 알고리즘을 확인합니다.
위 그림 상단의 박스는 Xshell이 지원하는 알고리즘이고 아래는 SSH 서버가 허용하는 알고리즘입니다. 위 그림에서 서로 맞는 알고리즘이 없어 접속이 실패한 경우입니다.
SSH 서버에서 SSH 서버가 지원하고 있는 알고리즘을 확인합니다.
Code Block $ man sshd_config ... KexAlgorithms Specifies the available KEX (Key Exchange) algorithms. Multiple algorithms must be comma- separated. Alternately if the specified list begins with a ‘+’ character, then the specified algorithms will be appended to the default set instead of replacing them. If the specified list begins with a ‘-’ character, then the specified algorithms (including wildcards) will be removed from the default set instead of replacing them. If the specified list begins with a ‘^’ character, then the specified algorithms will be placed at the head of the default set. The supported algorithms are: curve25519-sha256 curve25519-sha256@libssh.org diffie-hellman-group1-sha1 diffie-hellman-group14-sha1 diffie-hellman-group14-sha256 diffie-hellman-group16-sha512 diffie-hellman-group18-sha512 diffie-hellman-group-exchange-sha1 diffie-hellman-group-exchange-sha256 ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 sntrup761x25519-sha512@openssh.com The default is: curve25519-sha256,curve25519-sha256@libssh.org, ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, sntrup761x25519-sha512@openssh.com, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512,diffie-hellman-group18-sha512, diffie-hellman-group14-sha256 The list of available key exchange algorithms may also be obtained using "ssh -Q KexAlgorithms". ...
SSH 설정 파일은 sshd_config 파일에 필요한 알고리즘을 추가합니다.
Code Block $ sudo vi /etc/ssh/sshd_config ... KexAlgorithms +diffie-hellman-group-exchange-sha1
SSH 데몬을 다시 시작합니다.
Code Block $ sudo systemctl restart sshd
참고: SSH 접속이 성공적으로 이루어지기 위해서는 다음 알고리즘이 모두 맞아야 합니다. 다음 알고리즘 표시 이름은 Ubuntu 22.04 버전을 참고하였습니다. OS마다 사용하는 용어가 다를 수 있으므로 sshd_config의 man 페이지를 확인하여야 합니다.
Key Exchange(kex) 알고리즘: KexAlgorithms
Host key 알고리즘: HostKeyAlgorithms
Mac 알고리즘: MACs
Public 키 알고리즘: PubkeyAcceptedAlgorithms(Public 키 인증 시 필요함)
Cipher: Ciphers