SSH를 사용할 때 매번 비밀번호를 입력하는 것이 번거롭고, 보안상으로도 위험할 수 있습니다.
이럴 때 유용한 방법이 바로 공개키 기반 로그인입니다.
1. SSH 키 인증이란?
SSH 키 인증은 비밀번호 대신 공개키/개인키를 사용해서 서버에 접속하는 방식입니다.
개인키는 본인만 가지고 있고, 공개키는 서버에 등록해둡니다.
이 방식은 무차별 대입 공격에 강하고, 자동화 작업에도 적합합니다.
2. 클라이언트에서 SSH 키 생성하기
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
위 명령어를 입력하면 다음과 같은 절차가 진행됩니다:
- 키를 저장할 경로를 묻습니다 (기본값:
~/.ssh/id_rsa
) - 비밀번호(passphrase)를 설정할 수 있습니다 (옵션)
생성된 파일:
id_rsa
– 개인키 (절대 유출되지 않도록 보관)id_rsa.pub
– 공개키 (서버에 등록)
3. 공개키를 서버에 등록하기
- 방법 1: ssh-copy-id
사용 (추천)
ssh-copy-id username@server-ip
간단하게 공개키를 서버의 ~/.ssh/authorized_keys
에 복사해줍니다.
- 방법 2: 수동으로 등록하기
cat ~/.ssh/id_rsa.pub
출력된 내용을 서버의 ~/.ssh/authorized_keys
파일에 추가합니다.
4. 서버의 SSH 설정 확인
/etc/ssh/sshd_config
파일을 수정합니다.
sudo nano /etc/ssh/sshd_config
다음 항목이 아래와 같이 설정되어 있는지 확인하세요:
PubkeyAuthentication yes
PasswordAuthentication no
이후 SSH 서비스를 재시작합니다:
sudo systemctl restart ssh
5. 로그인 테스트
클라이언트에서 서버로 SSH 접속을 시도합니다:
ssh username@server-ip
정상적으로 키 인증이 설정되었다면 비밀번호 입력 없이 바로 접속됩니다.
만약 Permission denied
오류가 발생하면 퍼미션이나 키 경로를 다시 확인해보세요.
6. 보안 권장 사항
- 개인키는
600
권한으로 설정 (chmod 600 ~/.ssh/id_rsa
) ~/.ssh
디렉토리는700
권한으로 설정- 가능하면 루트 계정이 아닌 일반 사용자 계정으로 로그인한 뒤
sudo
를 사용하는 것이 좋습니다.
SSH 키 인증은 보안과 편의성을 모두 잡는 방법
ssh-keygen
을 통해 생성한 키로 로그인하면
비밀번호 없이도 안전하게 서버에 접속할 수 있고, 자동화 작업에도 유리합니다.
'개발 > 리눅스' 카테고리의 다른 글
[Linux] 리눅스에서 비밀번호 정책 설정하기 (0) | 2025.07.02 |
---|---|
[Linux] /etc/passwd, /etc/shadow 파일 이해하기 (0) | 2025.07.01 |
[Linux] SSH 서버 설정과 보안 강화 (0) | 2025.06.29 |
[Linux] 방화벽 설정하기 (UFW, firewalld) (0) | 2025.06.28 |
[Linux] sudo 권한 부여 및 제한하기 (0) | 2025.06.27 |