본문 바로가기

개발 도구/ssh

[ SSH ] ssh-keygen - 비밀번호 없이 Key로 ssh 접속하기

반응형

SSH 로그인 시 비밀번호 없이 SSH 키로만 로그인하려면, SSH 키를 생성하여 서버에 추가하고, SSH 서버 설정을 수정하여 키 기반 인증만 허용하면 됩니다. 다음 단계를 따라 설정할 수 있습니다.

1. SSH 키 생성 (비밀번호 없이 생성)

로컬 컴퓨터에서 다음 명령어를 실행하여 SSH 키를 생성합니다. 비밀번호 없이 로그인하려면 프롬프트에서 비밀번호 설정 없이 엔터 키를 두 번 누릅니다.

ssh-keygen -t rsa -b 2048 -f ~/.ssh/my_key -N ""
  • -t rsa: RSA 형식의 키를 생성
  • -b 2048: 키 길이를 2048 비트로 지정
  • -f ~/.ssh/my_key: 생성된 키 파일을 ~/.ssh/my_key 위치에 저장
  • -N "": 비밀번호 없이 생성

2. 공개 키를 서버에 복사하기

생성한 공개 키를 SSH 접속할 서버의 ~/.ssh/authorized_keys 파일에 추가합니다. 이를 위해 ssh-copy-id 명령어를 사용하면 편리합니다.

ssh-copy-id -i ~/.ssh/my_key username@server_ip
  • -i ~/.ssh/my_key: 로컬에서 사용할 키 파일을 지정
  • username@server_ip: 접속할 서버의 사용자 이름과 IP 주소

ssh-copy-id가 작동하지 않거나 수동으로 설정하려면 다음 명령어로 직접 복사할 수도 있습니다.

cat ~/.ssh/my_key.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. SSH 설정 파일 수정 (서버 측)

서버에서 SSH 설정 파일을 수정해 키 기반 인증만 허용하고, 비밀번호 인증을 비활성화합니다.

서버에 접속한 후, sshd_config 파일을 엽니다.

sudo nano /etc/ssh/sshd_config

다음 두 항목을 확인하고 설정합니다.

PasswordAuthentication no
PubkeyAuthentication yes
  • PasswordAuthentication no: 비밀번호 인증 비활성화
  • PubkeyAuthentication yes: 키 기반 인증 활성화

설정을 마친 후, SSH 서비스를 재시작합니다.

sudo systemctl restart ssh

4. SSH 키로 서버에 로그인

이제 로컬 컴퓨터에서 서버에 비밀번호 없이 로그인할 수 있습니다. 로그인할 때 생성한 키 파일을 명시하여 로그인합니다.

ssh -i ~/.ssh/my_key username@server_ip

이렇게 설정하면 키 기반 인증으로만 로그인할 수 있어 보안도 강화되고 비밀번호 없이 편리하게 로그인할 수 있습니다.

반응형