구형 시스코 네트워크 장비에 ssh 접속했는데, 아래와 같은 오류가 발생함.
$ ssh snowfox@192.168.0.100 Unable to negotiate with 192.168.0.100 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
구버전(ssh 6 이하)에서 지원하던 key exchange method를 지원하지 않아서 발생하는 문제로, 홈디렉토리의 .ssh/config 파일이나, /etc/ssh/ssh_config에 아래 내용을 추가하면 된다.
KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
위의 내용을 추가하고 ssh 접속을 다시 시도했을때, 아래와 같은 오류가 발생한다면,
Unable to negotiate with 192.168.0.100 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
같은 파일에 아래 내용을 추가한다.
Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
만약, 특정 호스트에만 적용하고 싶다면,
Host 192.168.0.100
지금까지 설정한 내용은 아래와 같다. 여기서는 홈디렉토리 아래의 .ssh/config 파일에 설정했다.
Host 192.168.0.100 KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
만약 /etc/ssh/sshd_config 파일에 설정을 했다면, ssh 데몬을 재실행해야 한다.