Search
🤝

리눅스 서버에 RSA Key 기반 SSH 접속 설정하기

RSA는 두 개의 키 쌍, 공개키(Public Key)와 비밀키(Private Key)를 사용하는 암호화 방식입니다. 공개키는 누구나 알 수 있지만, 비밀키는 소유자만이 가지고 있어 데이터를 안전하게 보호할 수 있습니다. 공개키로 암호화된 데이터는 비밀키로만 복호화할 수 있어, 안전한 통신과 인증에 쓰입니다.
공개키 (.pub) : 암호화 또는 인증 검증에 사용하며, 서버의 authorized_keys 등에서 사용
비밀키 (.pem) : 데이터를 복호화하거나 서명하는 데 사용되고, 외부에 절대 노출되어선 안 됨
공개키는 자물쇠 역할, 비밀키는 그 자물쇠를 여는 열쇠 역할이라고 이해하면 됩니다. RSA는 인터넷 보안, SSH 접속 등 다양한 분야에서 널리 쓰이는 기본 암호 기술입니다.

클라이언트 (사용자 PC)

1.
RSA 공개키(.pub), 비밀키(.pem) 생성 openssl 명령어 혹은 puttygen을 사용하여 만들어도 됩니다. 단 비밀키 생성 시, ppk 파일 뿐만아니라 SSH 클라이언트 프로그램 호환성을 고려하여 OpenSSH 형식으로도 만드세요.
2.
개인키 파일의 권한은 600으로 설정 (윈도우 환경에서는 따로 설정안해도 될듯…)
# 클라이언트 측 비밀키 파일 권한이 너무 러프한 경우 아래와 같은 에러 메시지 출력. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0660 for 'my-key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "my-key.pem": bad permissions user@host: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Bash
복사

서버 (원격지 서버)

1.
sshd 설정 변경
PubkeyAuthentication 설정의 기본값은 yes. no로 설정되어있을 경우에만 진행하기
/etc/ssh/sshd_config PubkeyAuthentication yes <- 변경
Bash
복사
2.
설정 적용을 위한 sshd 재기동
systemctl restart sshd
Bash
복사
3.
이 명령어로 생성된 공개키 내용(ssh-rsa ….) 복사 만약 명령어로 만들기 거시기하면 puttygen을 사용하여 만들어도 됩니다. 단 비밀키 생성 시, ppk 파일 뿐만아니라 SSH 클라이언트 프로그램 호환성을 고려하여 OpenSSH 형식으로도 만드세요.
4.
원격지 서버의 접속할 사용자 홈디렉토리에 공개 키 세팅
username은 ‘myuser’ , group은 ‘admin’ 이라고 가정
사용자 홈 디렉토리 내 .ssh 디렉토리 생성
cd /home/myuser mkdir .ssh
Bash
복사
공개키 파일 등록
echo '복사한 공개키 내용 (ssh-rsa....)' >> /home/myuser/.ssh/authorized_keys
Bash
복사
공개키 파일 권한 설정
chown 600 /home/myuser/.ssh/authorized_keys
Bash
복사
.ssh 디렉토리 권한 설정
chmod 700 /home/myuser/.ssh/
Bash
복사
사용자 홈 디렉토리 소유자 정보 일괄 변경
chown -R myuser:admin /home/myuser/
Bash
복사
3.
방화벽 정책 설정…

SSH 접속 테스트

클라이언트 (PC or Server)
ssh -i my-key.pem myuser@원격지서버호스트(IP or Domain) -p SSH 포트
Bash
복사
ssh -i my-key.pem myuser@bastion.myserver.com -p 22
Bash
복사
정상 접속 확인되면 지금 처럼 CLI로 접속하거나, 별도 GUI SSH 클라이언트 프로그램으로 접속하기.