[Linux] ssh 비번 없이 접속하기

식빵·2025년 9월 15일
0

linux

목록 보기
4/4

급한 분들을 위해서

# ssh 클라이언트 서버에서 아래처럼 작업
ssh-keygen -t rsa -b 4096 # 개인/공개키 생성

# ssh 클라이언트 서버에서 ssh 접속을 하려는 타깃 서버에
# 아까 만든 공개키를 복사하는 과정. 비밀번호 최초 한번 물어봄.
ssh-copy-id -i ~/.ssh/id_rsa.pub 타깃서버_계정@타깃서버_주소

# ssh 클라이언트 서버에서 로그인 수행
ssh 타깃서버_계정@타깃서버_주소

위처럼 해서 되면 된겁니다.
아래 목차들은 좀 더 상세한 내용을 정리했습니다.



A , B 서버 분리

일단 서버가 2개가 있다고 가정하겠다.

  • 하나는 ssh client 를 사용할 A 서버
  • 다른 하나는 ssh client 요청을 받을 B 서버

쉽게 얘기해서 A -> B 서버로 ssh 요청을 날리는 형태라고 가정하겠다.


A 서버(클라이언트)에서 키 생성

# (A 서버에서 작업해주세요)
# 참고: 만약 이미 키가 있다면 생략하세요!
# 키 존재 여부는 ~/.ssh/id_rsa , ~/.ssh/id_rsa.pub 파일 조회로 확인!
ssh-keygen -t rsa -b 4096

ssh-keygen 입력 후에 위 그림처럼 몇가지 질문을 합니다.

  1. Enter file in which to save the key:
    이거는 개인키/공개키 파일의 경로 및 명칭을 지정하는 겁니다.
    만약에 서로 다른 키 파일들을 생성하고 싶으면 이 설정을 조금 바꾸면 되겠죠?
  1. Enter passphrase (empty for no passphrase):
    이거는 생성된 키 파일들에 대한 암호화를 위한 비밀번호 설정입니다.
    만약에 아무것도 입력 안하고 Enter 를 하면 설정이 생략됩니다.
    이게 하면 좋긴 한데, ssh 로그인 시 다시 비밀번호 입력해야 되서,
    저는 생략했습니다.

tip: 그림에서 The key fingerprint is: ~~ 하는 부분이 있습니다.
맨 오른쪽에 Comment 가 달리는데, 이거는 말 그대로 Comment 이기 때문에
인증에 사용되지 않습니다. 만약 직접 설정하고 싶으면, 아래처럼 명령어를 실행하세요.
ssh-keygen -t rsa -b 4096 -C "my-server-key"



공개키를 B 서버에 등록

# (A 서버에서 작업해주세요)
# 아래처럼 입력하면 딱 한번 B_서버_계정의 비밀번호를 묻습니다. 입력해주세요!
ssh-copy-id -i ~/.ssh/id_rsa.pub B_서버_계정@B_서버주소

이 과정은 A 서버의 공개키를 ssh 접속하려는 B 서버에 넣는 과정입니다.
추후 ssh 인증을 할 때 이 공개키 내용을 통한 인증이 수행됩니다.

tip: 만약에 ssh-copy-id 가 없다면 아래처럼 하세요~

cat ~/.ssh/id_rsa.pub | ssh B_서버_계정@B_서버주소 \
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"



A 서버에서 B 로 ssh 접속

# (A 서버에서 작업해주세요)
ssh B_서버_계정@B_서버주소

정상적으로 B 서버에 접속하게 됩니다.



참고: 만약 안되면?

B 서버에 접속해서 cat ~/.ssh/authorized_keys | grep PubkeyAuthentication 라고
입력해보세요. 만약에...

  • 주석처리 (default 값 적용됨)
  • PubkeyAuthentication yes

... 로 되어 있으면 접속을 할 수 있습니다.

하지만 만약 PubkeyAuthentication no 로 되어 있으면 안됩니다.
yes 로 수정하고 sudo systemctl restart sshd 로 sshd 를 재기동하면 됩니다.



참고: B 서버에 등록된 공개키 조회

B 서버에서 아래처럼 입력:

cat ~/.ssh/authorized_keys

맨 끝에 보면 ssh-keygen 에 의해서 생성된 pub key 의 Comment 가 보입니다!

profile
백엔드 개발자로 일하고 있는 식빵(🍞)입니다.

0개의 댓글