(30)★ ssh key 를 사용하여 로그인 없이 로그인하기

2019. 3. 26. 10:39 OS/Linux

■ ssh key

ssh, rsync, git 과 같은 기술을 사용하면서, 로그인 없이 보다 안전한 방법으로 인증하고자 할 때 ssh 공개키를 이용하면 편의성과 보안성을 모두 증진시킬 수 있다. 


■ ssh key 이해 

 - host_1 의 IP : 192.168.0.4  

 - host_2 의 IP : 192.168.0.76

가 있다고 가정하자.

host_1 에서 host_2 로 접속하고자 할 땐  

$ ssh chpark@192.168.0.76 

$ password  // s12345 입력 시 host_2(리눅스)에 로그인 가능하다. 

이 때 비밀번호를 입력 하지 않으면서도 훨씬 더 안전한 방법으로 로그인 하는 방법을 알아보자. 

먼저 ssh 공개키, 비공개키를 만들어야 한다.  ( 비공개키는 절대 노출되어서는 안된다. ) 

## host_1 192.168.0.4 에 chpark 계정으로 로그인

$ ssh-keygen 

Enter file in which to save the key  (/home/chpark/.ssh/id-rsa)     

// (.ssh) .이 들어간 디렉토리의 경우 숨긴 파일임을 의미한다.


key 가 생성된다. 

ssh key 가 생성된 디렉토리를 찾아가보자. 

$ cd ~/chpark/.ssh

$ ls -l

id_rsa (ssh private key) , id_rsa.pub (ssh public key) 이 생성된 것을 볼 수 있다. 


host_1에 생성된 id_rsa_pub 의 내용을  host_2 의  인증된 키 목록 인 authorized_keys 에 붙여 넣어주면 

host_1에서 따로 로그인 하지 않고 오히려 더 안전하게  host_2에 접근할 수 있다. 


■ ssh-copy-id 

이 유틸리티를 사용하면 authorized_keys 파일 끝에 id_rsa.pub 파일의 내용을 append 하게 한다.

 

■ ssh publick key를 사용하여 로그인 (실습)


## host_1 (192.168.0.4)

$ ssh-keygen

$ cd ~chpark/.ssh

$ ls -l

id_rsa , id_rsa_pub 가 있다.

$ ssh-copy-id srhwang@192.168.0.76

// 처음 192.168.0.76 다른 ip로 접근 시 password 최초 한 번은 입력해줘야 한다.


## host_2 (192.168.0.76)

$ cat authorized_keys 

// host_1 의 public ssh key (id_rsa.pub)의 내용이 authorized_keys  파일에 append 된 것을 볼 수 있다. 


===================================================

이 후부터는 

$ ssh srhwang@192.168.0.76 

을 입력하면 로그인 필요없이 접속하게 된다. 


※ 정기적으로 실행하는 크론(cron)을 사용하여 다른컴퓨터로 로그인 후 동기화하는 작업이 있을 경우 굉장히 유용하게 사용될 수 있다. 



출처: https://sourceflower.tistory.com/86?category=613435 [소스플로우]