Profile picture

[Linux] SSH Keygen으로 원격 접속 키 생성하기

JaehyoJJAng2025년 10월 15일

SSH Key 인증?

image
SSH Key 인증은 비대칭 암호화라는 방식을 사용합니다.


한 쌍의 키(Key Pair)를 생성하여 하나는 내가 가지고 있고(개인 키, Private Key),

하나는 서버에 등록(공개 키, Public Key)하여 접속 시 서로를 확인하는 방식이죠.


  • Public Key (공개키): 누구나 볼 수 있는 키입니다. 접속하려는 원격 서버에 저장합니다.
  • Private Key (개인키): 나만 가지고 있어야 하는 비밀 키입니다. 절대 외부로 유출되어서는 안 됩니다.

SSH Key 로그인 설정

1. 로컬에서 키 쌍 생성하기 (ssh-keygen)

먼저 내 컴퓨터(Client)에서 키 쌍을 생성해야 합니다.

터미널을 열고 다음 명령어를 입력해요.

ssh-keygen -t ed25519 -C "your_email@exam.com"
  • -t ed25519: 최근 가장 권장되는 안전하고 빠른 암호화 알고리즘이라고 합니다.
    • 구형 서버라면 -t rsa -b 4096으로 변경해주세요.
  • Enter file in which to save the key: 위 명령을 실행할 시 해당 input이 발생합니다. 키를 저장할 경로를 지정해주면 됩니다. 보통 엔터를 눌러서 기본 경로(~/.ssh/id_ed25519)를 사용합니다.
  • Enter passphrase: 키 자체에 비밀번호를 거는 단계입니다. 보안을 위해 권장되지만 보통 설정하지 않습니다.

2. 서버로 공개키 전송하기 (ssh-copy-id)

생성된 공개키(.pub)를 접속할 서버에 전송해야 합니다!


ssh-copy-id라는 명령어를 쓰면 접속할 서버로 공개키 전송이 가능합니다.

ssh-copy-id 사용자명@ip

이 명령을 실행하면 ~/.ssh/authorized_keys 파일에 내 공개키 내용이 자동으로 추가됩니다.


3. SSH 접속 확인

이제 비밀번호 없이 로그인이 되는지 검증해보면 됩니다!

ssh 사용자명@ip

[번외] 비밀번호 로그인 금지

키 로그인이 성공했다면, 보안을 위해서 비밀번호 로그인 자체를 금지하는 것 이 좋습니다.

서버의 SSH 설정을 다음과 같이 변경해주세요.

$ vim /etc/ssh/sshd_config

# 다음 항목 수정
PasswordAuthentication no # 비밀번호 로그인 차단
PermitRootLogin prohibit-password # root는 키로만 접속 허용

비밀번호 로그인을 끄기 전에, 반드시 키 로그인이 정상적으로 작동하는지 먼저 확인해야 합니다!!

그렇지 않으면 서버 접속 수단이 완전히 끊길 수 있어요~

    Tag -

Loading script...