“No matching algo kex” 문제는 클라이언트와 서버 간에 사용할 수 있는 키 교환 알고리즘(KEX, Key Exchange Algorithm)이 일치하지 않아서 발생한다. 이 문제를 해결하려면 클라이언트나 서버 중 한 쪽에서 지원하는 키 교환 알고리즘을 맞추어야 한다.
해결 방법
1. 클라이언트 측에서 키 교환 알고리즘 지정
클라이언트 측에서 사용할 키 교환 알고리즘을 명시적으로 설정하는 방법이다. SSH 클라이언트의 -o
옵션을 사용하여 적절한 알고리즘을 지정할 수 있다.
예시: OpenSSH 클라이언트
scp -o KexAlgorithms=diffie-hellman-group14-sha1 source_file user@192.168.0.57:/destination_path
여러 알고리즘을 시도하려면 쉼표로 구분하여 나열할 수 있다:
scp -o KexAlgorithms=diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 source_file user@192.168.0.57:/destination_path
예시: Dropbear 클라이언트 (dbclient
)
Dropbear 클라이언트에서는 -o
옵션을 직접 지원하지 않기 때문에 SSH 구성 파일을 수정해야 할 수도 있다.
~/.ssh/cofig
파일을 열어 다음 내용을 추가한다.
Host 192.168.0.57
KexAlgorithms diffie-hellman-group14-sha1
2. 서버 측에서 키 교환 알고리즘 추가
서버 측에서 지원하는 키 교환 알고리즘을 추가하는 방법이다. SSH 서버의 설정 파일을 수정하여 추가적인 알고리즘을 지원하도록 설정할 수 있다. 이 방법은 서버에 접근 권한이 있을 때 가능하다.
SSH 서버 설정파일(/etc/ssh/sshd_config
)을 열고 다음 줄을 추가하거나 수정한다.
KexAlgorithms diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
수정 했으면 SSH 서버 서비스를 재시작한다.
sudo systemctl restart sshd