내 Debian 컴퓨터에서 SSH를 통해 Cisco 라우터에 연결하려고 하면 다음 메시지가 나타납니다:
Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1
이 포럼에는 답변이 있다고 주장하는 유사한 질문이 있지만 미묘한 차이로 인해 저에게 적합하지 않다는 것을 알았으므로 여기에 질문과 답변을 게시하기로 결정했습니다.
답변1
연결하려는 모든 호스트에 대해 시스템 전체에서 이 기능을 완전히 활성화하려면 /etc/ssh/ssh_config에 다음을 추가하십시오.
Host *
KexAlgorithms +diffie-hellman-group-exchange-sha1
자신의 계정에 대해서만 활성화하려면 ~/.ssh/config에 다음을 추가하세요.
Host *
KexAlgorithms +diffie-hellman-group-exchange-sha1
특정 호스트에 대해 이 기능을 활성화하려면 위 파일 중 하나를 편집하고 다음을 추가하세요.
Host 192.168.1.1
KexAlgorithms +diffie-hellman-group-exchange-sha1
호스트 그룹 및/또는 사용자 그룹에 대해 이 기능을 활성화하려면,읽어봐.
답변2
이 시도
{
echo -n 'Ciphers '
ssh -Q cipher | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'MACs '
ssh -Q mac | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'HostKeyAlgorithms '
ssh -Q key | tr '\n' ',' | sed -e 's/,$//'; echo
echo -n 'KexAlgorithms '
ssh -Q kex | tr '\n' ',' | sed -e 's/,$//'; echo
} >> ~/.ssh/config
답변3
"diffie-hellman-group-exchange-sha1" 문제를 해결한 후 다음 오류는 다음과 같을 것 같습니다.
"일치하는 호스트 키 유형을 찾을 수 없습니다. 인용문: ssh-rsa"
따라서 완전한 해결책은 이것을 ~/.ssh/config 파일(기본 구성이 아님)에 추가하는 것입니다.
Host x.x.x.x
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
User root
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
호스트 주소와 사용자 이름을 귀하의 것으로 바꾸십시오.
답변4
SSH 버전 2용 Cisco 라우터 및 Linux SSH 클라이언트 구성
A. Cisco 라우터에서:
- ~할 수 있게 하다
- 터미널 구성
- CPU 이름
- IP 도메인 이름
- 암호화 키는 rsa를 0으로 만듭니다(선택적으로 이전 콘텐츠 삭제).
- 암호화 키 생성 rsa(키 크기 2048)
- IP SSH 시간 초과 초 30
- ip ssh 인증 재시도 3
- ip ssh 버전 2(1은 더 이상 사용되지 않으며 openssl에서 지원되지 않음)
- 출구
B. 클라이언트(Linux)에서 연결합니다.
- /etc/ssh/ssh_config 편집
- 호스트(라우터의 URL, 호스트 이름 또는 IP*)
- Kex 알고리즘 diffie-hellman-group1-sha1
- 비밀번호 3des-cbc, aes192-cbc, aes256-cbc
- 참고 - 위의 호스트는 ssh 명령의 호스트 부분으로 사용되는 것과 일치해야 하며 인용된 각 입력에 대해 하나씩 빌드해야 합니다.
- 클라이언트 연결 구문:
SSH 예: ssh -p 22 user@hostname
구형 Cisco 장비는 포트 22에서 SSH만 지원합니다. 특히 Catalyst 유형 및 시대 스위치와 같은 구형 장비도 SSH를 전혀 지원하지 않습니다.