본문 바로가기
I T/Linux

ssh-keygen rsa [ 암호 없이 ssh 접속 ]

by 루솨 2016. 1. 13.
리눅스 에서 다른 서버로 ssh 이용하여 접속할때

로그인 암호 치고 스크립트를 만들수 있지만 

귀찮은 경우가 많습니다.

뭐.. 암호 치고 만드는 스크립트를 쓰던 아래에 적은 암호 없이 로그인이 되든 

보안상 취약한건 마찬가집니다.  털리면 다른 서버 역시 털릴수 있는 가능성이 높으니깐요.

외부 방화벽을 믿고

내부 서버끼리의 rsync 통신이나 scp 등등 막힘 없이 뚫어 줘야 하는 경우가 있는데요

보통 많이들 쓰시는게  ssh-keygen 입니다

리눅스 기본으로 openssh 가 설치 되므로.

ssh-keygen 역시 기본 설치 되어있습니다.

ex)
192.168.0.10 A_server  
192.168.0.20 B_server

A서버에서 B서버로  비밀번호 없이 접속을 하려 합니다.

계정은 root 또는 별도의 user 계정이고요

key 생성을 해줘야 하는데  해당 $user 계정으로 해주면 해당 $user 계정만  비밀번호 없이 B서버로 접속이 됩니다.

계정 별로 rsa 키 값이 틀리기 때문입니다.

키 생성은 간단합니다.

root 계정으로 했을때 예를 들겠습니다.

[root@test-server ]# ssh-keygen -t rsa           <<=== 커맨드 입력
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  엔터
Enter passphrase (empty for no passphrase):  엔터
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ad:XX:XX:ec:e4:0d:XX:47:XX:40:9a:XX:be:6d:2d:XX root@test-server
The key's randomart image is:
+--[ RSA 2048]----+
|                  .    .o.+|
|                . . o o .o|
|               E . . O . .|
|               . + B + . |
|                S * + .  |
|                   = .     |
|                  o        |
|                   o       |
|                     .      |
+--------------------+
[root@test-server ]# ls /root/.ssh/
id_rsa       id_rsa.pub   known_hosts  

위 보시면 3개의 파일이 있습니다

방금 ssh-keygen 명령어를 통하여  id_rsa 와  id_rsa.pub 라는게 생겼는데요

id_rsa.pub 라는 파일을 여시면


( 아래 XXX는 ... 신경 안쓰셔도되요.. 제가 대강 막 바꾼거라;  실제 저렇게 안나옵니다. )
vi /root/.ssh/id_rsa.pub

ssh-rsa   AAAAB3NzaC1yc2EAAAABIwAAAQEAxFC3IAykApW0fchSpmYwtYgb4+K/EdrXKiGkDOFK7deuzxU4lZNEP+6PMhaw56Gap0WPqMfmrnn7YpHPGvBArWpQduGvnEQClHVNJD6ppumPCHlcbHPAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDmwPHhlQTOejd6oL0eQApJmfTMJFhwtL1VKyM8eirTwQ/Af1QqUocVhXZztXjQLr0iI4D8MusWgXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX== root@test-server

이런 코드가 나오는데요. 

이 코드값을  드래그 해서 복사 한다음에 
B서버에 등록 시켜주면 됩니다.
경로는 
B서버   =   /root/.ssh/authorized_keys

authorized_keys 라는 파일을 터치 명령어나  vi 로 여시고

해당 파일안에 위 코드값을 넣어주면 됩니다
sshd 데몬 재시작 안해주셔도되구요.

바로 테스트 하시면 됩니다.

일반 user 계정 역시 위 방법대로 하시고.  
목적지 서버에 authorized_keys 파일안에 해당 키값을 넣어 주면 끝.

그럼 간단하게 ssh 명령어 또는 rsync scp 등등 패스워드 인증 없이 작업이 가능합니다.

그럼 수고하세요~