Categories
SSH

PuTTY: SSH 키 인증 방식으로 암호 입력 없이 로그인하기

1. SSH 키 페어 생성하기

윈도우에서 PuTTY 를 실행한다.

‘PuTTY Configuration’ 창 아래쪽에 있는 Keygen 버튼을 클릭한다.

PuTTY Key Generator 창이 뜬다.

‘Type of key to generate:’ 에서 ‘SSH-2 RSA’ 를 선택한다.

Generate 버튼을 클릭한다. 프로그레스 바 (progress bar) 밑의 빈 영역에서 마우스를 움직이면 키 생성 속도가 빨라진다.

SSH 키 페어 (pair) 는 퍼블릭 키와 프라이빗 (private) 키로 구성된다. 키가 생성되면 퍼블릭 키는 창에 표시된다. 프라이빗 키는 표시되지 않는다.

‘Save public key’ 버튼을 눌러서 퍼블릭 키를 저장한다. 파일 이름은 임의로 정한다. 예를 들어 rsa-key-20221012.txt 와 같이 이름붙이면 된다.

‘Save private key’ 버튼을 눌러서 프라이빗 (private) 키를 저장한다. 파일 이름은 임의로 정하면 된다. 확장자는 ppk 이다.

‘PuTTY Key Generator’ 창을 닫는다.

2. 프라이빗 키 불러오기

‘PuTTY Configuration’ 창 아래쪽에 있는 Agent 버튼을 클릭한다.

‘Pageant Key List’ 창 아래쪽에 있는 ‘Add Key’ 버튼을 클릭한다. 앞에서 저장해 둔 프라이빗 키 파일을 찾아 선택한다.

‘Pageant Key List’ 창을 닫고 PuTTY 를 종료한다.

3. SSH 서버에 퍼블릭 키 등록하기

SSH 서버가 동작하는 컴퓨터에서 ~/.ssh 디렉토리를 생성한다.

mkdir ~/.ssh

디렉토리의 퍼미션을 아래와 같이 변경한다.

chmod 700 ~/.ssh

이 디렉토리 안에 authorized_keys 라는 파일을 생성한다.

vi ~/.ssh/authorized_keys

클라이언트 컴퓨터에서 PuTTY 를 실행한다.

‘PuTTY Configuration’ 창 아래쪽에 있는 Agent 버튼을 클릭한다.

‘Pageant Key List’ 창 아래쪽에 있는 ‘Copy OpenSSH public keys’ 버튼을 클릭한다. 그러면 퍼블릭 키의 내용이 윈도우의 클립보드에 복사된다.

복사한 내용을 ~/.ssh/authorized_keys 파일에 붙여넣는다. 키의 내용이 1줄로 이루어졌는지 확인한다.

다음은 퍼블릭 키의 예이다.

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAroIMQaJALdkNzNEbCNGXQ14Dv4fXDFo6DEPWK7xUHR2FOLzPkDnSvNyjWYGu5w6RQdoWK6Od6DSmk95mSoF3wf3c1ps9XrMetix7mnkCHZl2V2QZIYAIVpohV45aLrvboILejN7UgNHnGTY+D5tymcalCnebl0mWWvFuOzuaeok+KlLko40QfJAmFuE/O6Jhn56c39Th+anSSw//2h52S3w212ES4mCnohAfqQpBCo6/pXqyTvgXZorX6Y4hCOC+Zcj/tTxVhUhcqlDELASSPWlzfhSRkm1OVqcOWba9r23Cr8TUrsnf5V2dj3IYE7nE32efJXU3mu99xZytM6g7NQ== rsa-key-20221013

~/.ssh/authorized_keys 파일을 저장하고 편집기를 닫는다.

4. 테스트

클라이언트 컴퓨터에서 PuTTY 를 통해 SSH 서버에 접속해 본다. 암호를 입력하는 과정을 거치지 않고 로그인되면 성공이다.

Categories
SSH

보안 강화를 위한 OpenSSH 서버 구성 변경

OpenSSH 서버의 구성 파일은 /etc/ssh/sshd_config 이다.

/etc/ssh/sshd_config 파일을 편집한다.

vi /etc/ssh/sshd_config

루트 계정으로 로그인하지 못하도록 한다. PermitRootLogin 항목을 no 로 설정한다.

PermitRootLogin no

암호를 통한 로그인을 금지한다.

PasswordAuthentication no

퍼블릭키를 통한 인증이 가능하도록 한다.

PubkeyAuthentication yes

퍼블릭키 방식의 로그인만 허용한다.

AuthenticationMethods publickey

SSH 의 디폴트 (default) 포트는 22번 포트이다. 보안을 위해 다른 포트로 변경한다.

Port 2424

SSH 는 모든 네트워크 인터페이스에 대하여 대기한다. 특정한 인터페이스에 대하여 대기하도록 변경한다.

ListenAddress 192.168.0.101

사용하지 않고 일정 시간이 지나면 클라이언트에 메시지를 보낸다. 시간은 초 단위이다.

ClientAliveInterval 15

클라이언트에 메시지를 보내는 회수를 지정한다. 해당 회수 만큼 메시지를 보낸 후에 응답이 없으면 접속을 끊는다.

ClientAliveCountMax 3

파일을 저장하고 편집을 마친다.

변경한 내용이 적용되도록 SSH 서버를 재시작한다.

sudo systemctl restart ssh

Categories
SSH

우분투 SSH 서버의 설치와 설정 파일 수정

최신 버전의 OpenSSH 서버를 설치하기 위해 우분투의 패키지 리스트를 업데이트한다.

sudo apt update

OpenSSH 서버를 설치한다.

sudo apt install openssh-server

OpenSSH 서버는 설치와 동시에 시스템 서비스로서 작동을 시작하게 된다. OpenSSH 서버가 실제로 작동 중인지 아래 명령으로 확인해 보자.

sudo systemctl status sshd

이 명령을 실행하면 메시지가 출력된다. 메시지의 3번째 줄에 ‘active (running)’이라고 표시되면 OpenSSH 서버가 작동 중인 것이다.

SSH 설정 파일들은 /etc/ssh 디렉토리에 저장되어 있다. 이중에서 /etc/ssh/sshd_config 파일이 OpenSSH 서버의 설정 파일이다. 이 파일을 수정함으로써 OpenSSH 서버의 작동 방식을 변경할 수 있는 것이다.

편집기로 /etc/ssh/sshd_config 파일을 연다.

sudo vi /etc/ssh/sshd_config

SSH 서비스의 디폴트 포트는 22번이다. 보안을 위해서 이 포트 번호를 변경하는 것이 좋다. 2424번으로 바꾸어 보자. /etc/ssh/sshd_config 파일에서 아래와 같은 줄을 찾는다.

#Port 22

이 줄을 아래와 같이 수정한다.

Port 2424

루트 계정으로 로그인하지 못하도록 설정해 보자. /etc/ssh/sshd_config 파일에서 아래와 같은 줄을 찾는다.

#PermitRootLogin

이 줄을 아래와 같이 수정한다.

PermitRootLogin no

수정을 마쳤으면 파일을 저장하고 편집기를 닫는다. 수정한 내용을 적용하려면 OpenSSH 서버를 재시작해야 한다.

sudo systemctl restart sshd

재시작된 OpenSSH 서버에 접속해 보자. 포트 번호가 2424번으로 변경되었으므로 이것을 지정해 주어야 한다.

ssh -p 2424 userid@servername.com

OpenSSH 서버의 작동을 중단시킬 때는 아래 명령을 사용하면 된다.

sudo systemctl stop sshd

Categories
SSH

How to install and use OpenSSH server on Ubuntu 20.04

Installing OpenSSH server on Ubuntu

First of all, check if SSH is already installed.

ssh -V

Make sure that your database for packages is up to date.

sudo apt update

Install the OpenSSH by executing the following command:

sudo apt install openssh-server

You can check that the OpenSSH server is actually running.

sudo systemctl status sshd

Enabling OpenSSH server on system boot

If you want the OpenSSH server to start on system boot, you should enable the ssh service.

sudo systemctl enable ssh

Configuring OpenSSH server on Ubuntu

The configuration file for the OpenSSH server is /etc/ssh/sshd_config.

vi /etc/ssh/sshd_config

Changing default port for the OpenSSH server

In /etc/ssh/sshd_config file, search for the following line:

#Port 22

Change the port to a desired one. For example:

Port 4422

Restarting OpenSSH server to apply the new settings

Apply the changes in /etc/ssh/sshd_config file to OpenSSH server by executing the following command:

sudo systemctl restart sshd

Stopping OpenSSH server

To stop the OpenSSH server, execute the following command:

sudo systemctl stop sshd

How to connect to OpenSSH server

The command syntax:

ssh -p <port number> <user account>@<server IP address>

or

ssh -p <port number> <user account>@<server hostname>

For example, you can run a command like this:

ssh -p 4422 foo@192.168.1.123