RHEL9에서 레거시 시스템(AIX7.2, RHEL6)으로 SSH 접속 문제 발생 시 SHA1을 정책에 포함하는 방법에 대해 설명합니다.
문제 설명
RHEL9 시스템에서 RHEL6 시스템으로 SSH 접속 시, 아래와 같은 오류 메시지가 발생하며 접속이 불가능한 상황이 발생했습니다.
Unable to negotiate with 192.168.155.60 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
이는 RHEL9의 기본 암호화 정책(DEFAULT)이 SHA1 기반의 키 교환 방법을 지원하지 않기 때문입니다. 이를 해결하기 위해 시스템의 암호화 정책을 DEFAULT:SHA1
으로 변경하여 SHA1 알고리즘을 추가할 수 있습니다.
시스템 버전 별 에러 로그
- RHEL9 → AIX7
# ssh -vvv aix7
...
debug1:send_pubkey_test: no mutual signature algorithm
...
- RHEL9 → RHEL6
Unable to negotiate with 192.168.155.60 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
- RHEL6 → RHEL9
no hostkey alg
해결
1) 암호화 정책 변경
SHA1 알고리즘을 추가하기 위해 다음 명령어를 실행합니다
# update-crypto-policies --set DEFAULT:SHA1
이 명령은 시스템의 기본 암호화 정책 위에 SHA1을 추가합니다.
정책을 DEFAULT:SHA1이 아닌 LEGACY 프로필로 변경하라는 문서도 있는데 이는 권장되지 않습니다. LEGACY 정책의 경우 보안에 취약한 여러 알고리즘이 더 포함되어 있습니다.
다음과 같이 시스템에서 사용할 수 있는 몇 가지 정책 프로필이 있습니다.
- DEFAULT: 일반적으로 권장되는 기본 설정. (default)
- FUTURE: 더욱 강력한 보안을 제공하는 설정.
- LEGACY: 호환성을 위해 약한 알고리즘을 허용하는 설정.
- FIPS: FIPS(Federal Information Processing Standard) 모드를 준수하는 설정.
보다 자세한 내용은 # man crypto-policies
명령을 참조할 수 있습니다.
2) 정책 적용 확인
정책이 제대로 적용되었는지 확인합니다.
# update-crypto-policies --show
DEFAULT:SHA1
명령의 출력 결과에서 DEFAULT:SHA1 이 출력 되어야 합니다.
3) 시스템 재부팅
정책을 변경한 후에는 다음과 같은 메시지가 나타납니다. 이는 시스템 전역 암호화 정책이 애플리케이션 시작 시 적용되므로, 새로운 정책을 완전히 적용하기 위해서는 애플리케이션을 재시작하는 것이 권장된다는 내용입니다. SSH의 경우 자동으로 새로운 정책이 반영되지만, 이전 정책을 사용하는 프로세스가 여전히 실행 중일 수 있으므로, 시스템 재부팅이 권장됩니다.
Setting system policy to DEFAULT:SHA1
Note: System-wide crypto policies are applied on application start-up.
It is recommended to restart the system for the change of policies
to fully take place.
원복 방법
다시 원래의 기본 정책으로 되돌리기 위해 아래 명령을 실행합니다.
# update-crypto-policies --set DEFAULT
접속 테스트
- 변경 전 접속 시도정책 변경 전에는 SSH 접속이 실패합니다
bash코드 복사 # update-crypto-policies --show DEFAULT # ssh 192.168.155.60 Unable to negotiate with 192.168.155.60 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
- 정책 변경 후 접속 시도정책을
DEFAULT:SHA1
으로 변경한 후, SSH 접속이 성공적으로 이루어집니다# update-crypto-policies --set DEFAULT:SHA1 Setting system policy to DEFAULT:SHA1 Note: System-wide crypto policies are applied on application start-up. It is recommended to restart the system for the change of policies to fully take place. # update-crypto-policies --show DEFAULT:SHA1 # ssh 192.168.155.60 The authenticity of host '192.168.155.60 (192.168.155.60)' can't be established. RSA key fingerprint is SHA256:LUUdv7qMHd/QhfGYS7weWPlGqUAHcp0GBduQER2xTy4. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?
결론
RHEL9 시스템에서 SHA1을 사용하는 오래된 시스템으로 SSH 접속 시 발생하는 암호화 알고리즘 문제를 해결하기 위해, DEFAULT:SHA1
정책을 설정하여 SHA1 알고리즘을 추가하면 문제를 해결할 수 있습니다. 이를 통해 RHEL9 클라이언트가 RHEL6 서버와의 호환성을 유지하면서 안전하게 접속할 수 있습니다.