조선시대 클라이언트에서 요즘 SSH 서버 접속하는 법

Composite·2022년 1월 7일
2

업체명 아니다.

아니 싯팔 조선부터 키워온 클라이언트에서 최신 SSH 접속해야 하는 일이 생겼다.
Github 의 경우 CentOS 6 같은 구닥다리 클라이언트에 접속하려 하면 안 될 것이다. Gitlab 도 얄짤없다.

만약 조선 서버에서 요즘 서버로 ssh 접속하려 하면 딸랑 이 메시지만 뜰 것이다.

no hostkey alg

그리고 너의 얼굴은 이렇게 되겠지.
아이 싯팔

심지어 인터넷 차단된 업무 서버인 케이스가 대부분일테니 SSH 업데이트는 물건너갔다.
자, 얼마나 구닥다리인지 체크해보자.

$ ssh -Q key

조선 서버라면 안먹힐 것이다. CentOS 기준으로 7 나온 시점부터 생긴 옵션이거든.
그렇다면, 다음으로는 아래 명령어로 지원 알고리즘을 확인한다.

$ ssh -vvvv 127.0.0.1

어자피 로컬로 로컬 접속하면 실패 뜬다. 걱정 말고 실행해 보자.
만약 요즘 SSH 쓴다면 아래 메시지가 반드시 포함될 것이다. 아주 친절하게 호스트가 지원하는 알고리즘을 뿌려준다.

debug2: host key algorithms: 어쩌고저쩌고...

하지만 조선 서버에서는 안 뿌려준다. kex_parse_keyinit 문항으로 알고리즘을 파악해야 하는데, 대충 이렇게 뿌릴 것이다.

debug2: kex_parse_kexinit: ssh-rsa,ssh-dss

앙상하네...
하지만 길은 있다. 다행으로 생각하라. 호스트에 알고리즘을 요구할 수 있다. 그런 옵션이 있다.

$ ssh -o HostKeyAlgorithms=+ssh-rsa git@github.com

그러면 니가 가진 RSA 키파일을 사용하여 Github 에 대충 "인증 성공" 메시지가 뜰 것이다. 축하한다. 고조선 서버는 아니다.
하지만 매번 -o 옵션을 넣는다는 건 꽤 번거로운 일이다. 그래서 SSH 클라이언트에도 설정 파일을 제공한다.
만약 Github 을 여러 계정으로 써봤다면 아~ 할 것이다.

$ vi ~/.ssh/config

vi 쓰던 nano 쓰던 뭐 편한 편집기로 열어서 대충 아래 내용 추가하면 된다.

Host github.com
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa

아예 Host * 와일드카드 써서 모든 서버에 적용할 수도 있는데... 일단은 그냥 안되는 서버에 쓰도록 하자.
그리고 그냥 평소대로

$ ssh git@github.com

실행하면 똑같이 대충 인증 성공하고 끝나는 눈물겨운 모습을 볼 수 있다.

아직 조선 서버는

성능 확실하구만

끗.

profile
지옥에서 온 개발자

0개의 댓글