포스트

ubuntu - ssh 인증키 설정하기

실행 환경

  • 로컬 : windows 11
  • 서버 : ubuntu 22.04.4 LTS


1. 로컬 컴퓨터에서 SSH 키 생성

키 생성 명령어 입력

1
ssh-keygen -t rsa -b 4096 -C "홈 서버 로그인 키 / 2024.06.17"
  • -C : comment 입력
  • -t : 키 유형 설정
  • -b : 키 길이(bit) 설정

키 저장 위치 지정

Enter file in which to save the key (C:\Users\xh/.ssh/id_rsa):
저장할 위치를 입력한 후 엔터를 입력한다.
기본 위치로 저장하려는 경우 바로 엔터를 입력해준다.

1
Enter file in which to save the key (C:\Users\xh/.ssh/id_rsa): C:\Users\me\.ssh\id_rsa
  • .ssh 까지는 디렉터리 경로
  • id_rsa 는 키 이름

비밀번호 추가

Enter passphrase (empty for no passphrase):
생략 가능한 부분으로 비밀번호를 추가하면 보안이 조금 더 강력해진다.
생략하려면 바로 엔터 입력

1
2
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:


2. 공개 키 서버로 복사

windows에서 생성된 공개 키 확인

1
cat C:\Users\me\.ssh\id_rsa.pub

서버 접속

기존에 사용하던 방법으로 ssh 프로그램(putty) 등을 통해 서버에 접속한다.
그리고 ~/.ssh/authorized_keys 위치에 공개 키를 추가해준다.

1
2
3
4
5
6
7
# ~/.ssh 디렉터리가 없는 경우
mkdir -p ~/.ssh 
chmod 700 ~/.ssh

# authorized_keys에 키 추가
echo "your_copied_public_key" >> ~/.ssh/authorized_keys 
chmod 600 ~/.ssh/authorized_keys


3. ssh 설정 변경

ssh 설정 파일 실행

1
sudo vi /etc/ssh/sshd_config

아래 항목 찾아 수정

1
2
3
4
5
6
7
8
# 공개키를 통해 ssh root 로그인 허용
PermitRootLogin prohibit-password

# 비밀번호 인증 거부
PasswordAuthentication no

# 공개키 인증 허용
PubkeyAuthentication yes

ssh 서비스 재시작

1
sudo systemctl restart sshd

서비스 재시작 후 putty 등을 이용해서 기존에 사용하던 비밀번호로 서버에 접속해보면 접속 실패하는 걸 확인할 수 있다.

생성한 private key를 통해 로그인을 시도하면 성공하는 것도 확인할 수 있다!




참고한 사이트

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.