Categories
SSH

OpenSSH: no matching host key type found 문제 해결 방법

Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

위와 같은 메시지가 출력되면서 SSH 서버에 접속이 되지 않는 문제를 해결해 보자.

ssh-rsa 서명 방식 (scheme) 은 OpenSSH 8.8 릴리스 (release) 부터 권장되지 않는다.

OpenSSH 8.8 은 2021년 8월에 발표되었다.

아직도 이 방식을 사용하는 구형 SSH 서버가 많기 때문에 이러한 문제가 발생한다.

1. HostKeyAlgorithms=+ssh-rsa 옵션 사용

첫번째 방법은 커맨드 라인에서 HostKeyAlgorithms=+ssh-rsa 옵션을 사용하는 것이다.

아래와 같은 명령으로 구형 SSH 서버에 접속한다.

ssh -oHostKeyAlgorithms=+ssh-rsa userid@211.110.80.91

2. ~/.ssh/config 파일 수정

두번째 방법은 홈 디렉토리의 ~/.ssh/config 파일을 수정하는 것이다.

편집기로 파일을 연다.

vi ~/.ssh/config

파일에 아래 내용을 추가한다.

Host 211.110.80.91
HostKeyAlgorithms +ssh-rsa

211.110.80.91 은 SSH 서버의 IP 주소이다.

파일을 저장하고 편집기를 닫는다.

아래와 같은 명령으로 구형 SSH 서버에 접속한다.

ssh userid@211.110.80.91

이 경우에는 HostKeyAlgorithms=+ssh-rsa 옵션을 사용할 필요가 없다.

Categories
SSH

윈도우 클립보드 (clipboard) 내용을 PuTTY 세션에서 붙여넣기

윈도우의 클립보드 (clipboard) 에 복사된 내용을 PuTTY 세션 (session) 에서 붙여넣는 방법을 알아보자.

1. 마우스를 이용한 방법

PuTTY 창에서 마우스의 오른쪽 버튼을 클릭한다.

2. 키보드를 이용한 방법

PuTTY 창에서 Shift + Ins 키를 누른다.

3. 메뉴를 이용한 방법

PuTTY 창에서 Ctrl 키를 누른 채로 마우스의 오른쪽 버튼을 클릭한다.

메뉴가 나타나는 것을 확인한다.

메뉴에서 Paste 를 클릭한다.

Categories
SSH

PuTTY 커맨드 라인 옵션: -load 옵션과 -pw 옵션

PuTTY 를 커맨드 라인에서 실행할 때 쓸 수 있는 유용한 옵션들을 살펴보자.

1. -load 옵션

-load 옵션은 저장한 세션을 로드 (load) 할 때 쓴다.

아래 명령은 xtmci 라는 이름으로 저장된 세션의 정보를 이용해서 서버에 접속한다.

c:\putty\putty.exe -load xtmci

세션 파일은 PuTTY 설치 폴더 밑에 있는 sessions 폴더에 있다.

세션 이름에 공백이 포함되어 있을 경우에는 큰따옴표 (“) 로 세션 이름을 둘러싼다.

c:\putty\putty.exe -load “xtmci telnet”

2. -pw 옵션

-pw 옵션은 암호를 지정할 때 쓴다.

c:\putty\putty.exe -pw pass1234

-pw 옵션을 -load 옵션과 함께 쓸 수도 있다.

c:\putty\putty.exe -pw pass1234 -load xtmci

간편하게 서버에 자동으로 로그인하고자 할 때 이 명령을 쓰면 된다.

Categories
SSH

우분투에서 키 인증 방식으로 암호 없이 SSH 서버에 접속하기

키 페어 (pair) 방식으로 SSH 서버에 접속하는 방법을 알아보자.

1. 키 페어 만들기

키 페어는 클라이언트 컴퓨터에서 만든다.

아래 명령으로 키 페어를 생성한다.

ssh-keygen

명령을 실행하면 키 페어를 저장할 파일 이름을 입력받기 위해 프롬프트가 대기한다. 아무것도 입력하지 않고 엔터 키를 누르면 기본값이 사용된다. 기본값은 ~/.ssh/id_rsa 이다.

암호를 입력받는 프롬프트가 대기한다. 암호는 선택 사항이다. 아무것도 입력하지 않고 엔터 키를 누르면 암호는 사용되지 않는다.

키 페어는 프라이빗 키와 퍼블릭 키로 구성된다. 프라이빗 키는 ~/.ssh/id_rsa 파일에 저장되고 퍼블릭 키는 ~/.ssh/id_rsa.pub 파일에 저장된다.

2. 퍼블릭 키의 전송

퍼블릭 키는 서버 컴퓨터에 저장되어야 한다. 서버 컴퓨터는 SSH 서버가 동작 중인 컴퓨터이다.

아래 명령으로 퍼블릭 키를 서버 컴퓨터로 전송한다. 이 명령은 클라이언트 컴퓨터에서 수행한다.

ssh-copy-id user1@sshserver.com

user1 은 암호를 통해 SSH 서버에 접속할 수 있는 사용자 계정이다. sshserver.com 은 서버 컴퓨터의 호스트네임이다.

명령을 실행하면 연결 작업을 계속할 것인지 묻는 프롬프트가 대기한다. yes 라고 입력한다.

서버 컴퓨터 사용자 계정의 암호를 묻는 프롬프트가 대기한다. 암호를 입력한다.

전송된 퍼블릭 키는 서버 컴퓨터의 ~/.ssh/authorized_keys 파일에 저장된다.

3. 암호 기반 인증 금지

SSH 구성 파일을 수정하여 암호 기반 인증을 금지한다. 이 작업은 서버 컴퓨터에서 수행한다.

SSH 구성 파일을 연다.

sudo vi /etc/ssh/sshd_config

PasswordAuthentication 부분을 찾아 아래와 같이 수정한다.

PasswordAuthentication no

SSH 서버를 재시작한다.

sudo systemctl restart ssh

4. 테스트

아래 명령으로 SSH 서버에 접속해 보자.

ssh user1@sshserver.com

암호를 입력하는 과정 없이 서버에 로그인된다면 성공이다.