리눅스
KEX 알고리즘 호환 문제
변군이글루
2025. 6. 13. 12:18
반응형
KEX(Key Exchange) 알고리즘 호환 문제
CentOS 5.6과 같은 구버전 리눅스에서 Ubuntu 22.04와 같은 최신 시스템으로 파일을 전송하려 할 때, SSH 서버의 최신 보안 요구사항(KEX 알고리즘 등)을 클라이언트가 충족하지 못해 연결이 차단되는 문제가 발생합니다.
테스트 환경
보내는 쪽
- 운영체제 : CentOS 5.6 (출시: 2011년, 매우 구버전)
- 아이피 주소 : 192.168.0.102
받는 쪽
- 운영체제 : Ubuntu 22.04.3 LTS (신버전)
- 아이피 주소 : 192.168.0.101
문제 요약
CentOS 5.6에서 scp 명령 실행 시 아래와 같은 오류 발생
scp backupfile.tar.gz ubuntu@192.168.0.101:~
no kex alg
lost connection
이 오류는 SSH 연결 시 사용하는 KEX(Key Exchange) 알고리즘의 호환성 차이에서 비롯됩니다. CentOS 5.6에 탑재된 OpenSSH는 오래된 암호화 알고리즘만 지원하는 반면, Ubuntu 22.04의 OpenSSH는 보안 강화를 위해 이러한 구식 알고리즘의 사용을 기본적으로 차단합니다.
해결 방법 1
서버(Ubuntu)에서 구식 알고리즘 허용
SSH 설정 파일 수정
vim /etc/ssh/sshd_config
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
HostKeyAlgorithms +ssh-rsa
Ciphers +aes256-cbc
SSH 서비스 재시작
sudo systemctl restart ssh
CentOS에서 scp 재시도
scp file.tar.gz user@192.168.0.101:~
728x90
해결 방법 2
클라이언트(CentOS) 대신 Ubuntu에서 가져오기(역방향 scp)
SSH 접속 확인
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \
-oHostKeyAlgorithms=+ssh-rsa \
-oCiphers=+aes256-cbc \
user@192.168.0.102
SCP 접속 확인
scp -oKexAlgorithms=+diffie-hellman-group1-sha1 \
-oHostKeyAlgorithms=+ssh-rsa \
-oCiphers=+aes256-cbc \
user@192.168.0.102:~/file.tar.gz .
대체 방법 (우회 전송)
HTTP 서버 열고 wget으로 다운로드(CentOS → Ubuntu 다운로드)
CentOS에서 임시 HTTP 서버 실행 (Python 2.x 기준)
$ python -V
Python 2.4.3
cd /home/user
python -m SimpleHTTPServer 8080
$ python -m SimpleHTTPServer 8080
Serving HTTP on 0.0.0.0 port 8080 ...
Ubuntu에서 파일 다운로드
$ nc -zv 192.168.0.102 8080
Connection to 192.168.0.102 8080 port [tcp/http-alt] succeeded!
wget http://192.168.0.102:8080/backupfile.tar.gz
반응형