ssh key 생성(비밀번호 없이 로그인)

By | 2021년 8월 23일
Table of Contents

ssh key 생성(비밀번호 없이 로그인)

목표

ssh 키를 생성하고, 서버에 비밀번호 없이 접속합니다.

ssh 키 생성

키를 생성하는 방법은 아래와 같이 여러가지 방법이 있습니다.

git for windows 를 이용해 생성

puttygen 을 이용해 생성

참고

https://www.puttygen.com/download.php?val=49 에서 puttygen 을 다운받습니다.

puttygen 을 실행합니다.

1번을 눌러 공개키/개인키를 생성합니다.

2번을 복사해서 서버에 등록합니다.(서버에 공개키 등록 참조)

3번을 눌러 개인키를 저장합니다.(putty 용 개인키)

위 방법으로 openssh 를 위한 개인키를 생성할 수 있습니다.

openssh 를 이용해 생성

# 기존에 존재하는 키를 확인하고 중복되지 않는 이름의 키를 생성합니다.
ls -al ~/.ssh/

# 파일명은 풀패스를 적어주어야 합니다.
# passphrase 는 비밀번호 없이 로그인하기 위해 그냥 엔터를 입력합니다.
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/skyer9/.ssh/id_rsa): /home/skyer9/.ssh/my_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/skyer9/.ssh/my_rsa
Your public key has been saved in /home/skyer9/.ssh/my_rsa.pub
The key fingerprint is:
SHA256:X0zNXXXXXXXXXXXXXXXXXXugtPLM skyer9@notebook
The key's randomart image is:
+---[RSA 3072]----+
|          .+o*o..|
|          xxxxxxx|
|          xxxxxxx|
|          xxxxxxx|
|        xxxxxxxxx|
|         xxxxxxxx|
|          ++ + + |
|          .B= +  |
|         .oEO=oo |
+----[SHA256]-----+

cat ~/.ssh/my_rsa
cat ~/.ssh/my_rsa.pub

서버에 공개키 등록

참고

권한 설정을 아래와 같이 해줍니다.

chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys

위에서 생성한 공개키를 아래 파일에 추가해줍니다.

vi /home/your_user/.ssh/authorized_keys

주의 : PuTTY 와 OpenSSH 는 서로 다른 형식의 포멧을 사용합니다.
공개키가 "—- BEGIN SSH2 PUBLIC KEY …" 이런 형식으로 되어 있다면 이것은 OpenSSH 가 인식하지 못하는 포멧입니다.
"ssh-rsa AAAA …." 와 같이 한줄로 되어 있어야 OpenSSH 가 인식하는 정상적인 포멧입니다.

NOTE: PuTTY and OpenSSH use different formats for public SSH keys. If the SSH Key you copied starts with "—- BEGIN SSH2 PUBLIC KEY …", it is in the wrong format. Be sure to follow the instructions carefully. Your key should start with "ssh-rsa AAAA …."

아래 설정으로 공개키 접속을 활성화 후 접속을 시도합니다.

sudo vi /etc/ssh/sshd_config
......
PubkeyAuthentication yes
......

sudo service sshd restart

개인키를 이용해 접속

위에서 생성한 개인키를 putty 에 설정 후 접속합니다.

비밀번호 로그인 비활성화

접속이 성공한 후 비밀번호를 이용한 로그인을 제한합니다.
만약 한번에 설정을 했다가 공개키 인증이 실패하면 확정적으로 아무런 로그인 수단이 없는 상태가 됩니다.
성공을 확인 후 아래 명령을 수행하시기 바랍니다.

sudo vi /etc/ssh/sshd_config
......
PasswordAuthentication no
......

sudo service sshd restart

답글 남기기