리눅스

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

 

반응형