OS 기술/Linux

리눅스 SSH Key 기반 로그인 방법 정리

DongT 2025. 7. 14. 12:36
728x90
반응형


 

리눅스에서 SSH key를 사용하는 방식은 비대칭키를 활용하는 방법으로, 서버에 저장되는 public key 1개와, 사용자가 소지하는 private key 1개가 생성됨.

출처:  https://brunch.co.kr/@ka3211/11

 

🔐 SSH 키 생성 명령 (서버에서 할 일)

ssh-keygen -t rsa
  • -t 옵션으로 암호화 알고리즘 지정 가능 (보통 rsa 사용)
  • 키 저장 경로는 기본적으로 ~/.ssh 하위 경로로 설정됨
  • passphrase를 입력하면 로그인 시마다 암호 입력 필요. 공란으로 두면 자동 로그인 가능함

 

🗂️ 생성된 파일 확인 (서버에서 할 일)

기본적으로 아래 두 파일이 생성됨

  • id_rsa : 개인키 (로컬 사용자 보관)
  • id_rsa.pub : 공개키 (서버에 등록)
ls -l ~/.ssh
file id_rsa
file id_rsa.pub

생성된 키 확인
참고) 각 키의 형식

 

🔑 공개키 서버 등록 (서버에서 할 일)

서버의 로그인 계정의 ~/.ssh/authorized_keys 파일에 id_rsa.pub 내용을 추가해야 함

cat id_rsa.pub >> ~/.ssh/authorized_keys

🧪 테스트 로그인 (사용자에서 할 일)

다음과 같이 키 기반으로 SSH 로그인 테스트를 할 수 있음

ssh -i ~/.ssh/id_rsa 사용자명@서버주소

※ 단, 키를 생성한 계정으로만 접속 가능하며, 다른 계정에는 인증 실패함

 

 

❗ 키 기반 로그인 안될 때 점검 사항

  • 계속 패스워드 입력을 요구하는 경우 → authorized_keys 파일이 잘못되었을 가능성 있음
  • 디버깅은 -v 옵션 사용하여 로그 확인
ssh -v -i ~/.ssh/id_rsa 사용자@서버

 

💡 참고: known_hosts vs authorized_keys

  • ~/.ssh/known_hosts는 접속 대상 서버의 공개키 정보 저장 파일임
  • ~/.ssh/authorized_keys는 접속을 허용할 클라이언트의 공개키 목록임

 

✅ 결론

SSH 키 기반 인증을 사용하면 비밀번호 없이도 안전한 인증이 가능함.
단, 공개키 등록과 퍼미션 설정이 중요하며, 잘못된 설정 시 키 인증이 실패하게 됨.

 


덤) sshkey를 이용해서 putty 전용 ppk 를 만들 수도 있음.

 

 



 

728x90