ssh key 생성, 배포 후 원격 접속

곽동규·2024년 4월 7일

CentOS7 환경에서 ssh-key를 생성하여 패스워드 없이 ssh 접속하기

1. ssh-key 생성

-t 옵션으로 암호화 형식을 rsa로 지정

기본경로로 설정하면 .ssh 디렉토리가 생기며 아래에 id_rsa와 id_rsa.pub 파일이 생긴다.
각각 private key, public key 이다.

경로지정 -> 패스워드 설정

[root@host .ssh]# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ibroot/.ssh/id_rsa): 
Created directory '/home/ibroot/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ibroot/.ssh/id_rsa.
Your public key has been saved in /home/ibroot/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RPmY3HUwEThRLHrpkWvmpDTy00J/Q85de06U7WHNNpM ibroot@NKIV-Ansible
The key's randomart image is:
+---[RSA 2048]----+
|        ...=*+   |
|       .. + o..  |
|       ..* * .   |
|       .= B    .=|
|        So o   E*|
|      . + * . .+=|
|       = X + . .+|
|        = + = .o.|
|         o . . .o|
+----[SHA256]-----+

2. ssh-key 배포
생성된 public key를 원격서버에 배포해야 한다.

# ssh-copy-id -i /home/ibroot/.ssh/id_rsa.pub "client 계정"@"client IP"

전송하면 known_hosts 파일이 생긴다.

[root@host .ssh]# cat known_hosts  
172.16.0.88 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0W6eEWRA29CREvxTa/q13A8ygvKLNCplXL03Gi37gmj1+0yrNNHO0ZggMx4ip/AxinpJZrPpjHQVDdjmVfPYZAUtoCsgwUOiGDrcHzOVKEKyOACFPRF8DUNKtEqaPm5cLJBwrK1bkKl+ELoZeqVsL8fhbx818rxLAbvAyfVZKfYMPUxny6zTYexqGs8eZAl47WJzTNocOcms2oz+gZkYen/nVwzezfaHa3kF14fFPusin4BRvK0wvI/tjJNbPjnC5tKgiVO62PprmQo08tk15/qaBLZzJLDtWWsmSaG/6AulcOi8X5oJSvqUXZl8O7jJeDuSsWYNZDIewaOZbFbBkw==

암호를 입력하고 사용자가 인증되면 공개 키 ~/.ssh/id_rsa.pub가 client ~/.ssh/authorized_keys 파일에 추가된다.

[root@client .ssh]# pwd 
/root/.ssh 
[root@client .ssh]# ll 
합계 4 
-rw-------. 1 root root 572  3월  7 16:57 authorized_keys 

결론
이제 host에서 client 로 ssh 접속 시 패스워드 없이 접속 가능하다.
패스워드 접속보다 보안적 측면에서 뛰어나며, 워크플로우가 간단해진다.

0개의 댓글