본문 바로가기

OS/Linux

ssh 암호 없이 로그인하기

 

테스트, 배포, 등에서 password 없이 ssh 를 사용해야 할때가 있는데 미묘한 차이로 잘 안되는 경우가 많아 따로 기록하려함.

ssh 키 생성

키 생성은 특정서버에 접속을 시도하려는 클라이언트에서 수행한다.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chlee/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/chlee/.ssh/id_rsa.
Your public key has been saved in /home/chlee/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:p+Fk0V5LLR7jObgRFA7bfc1oHNVynuIyNd4Z5tCVJks chlee@dev
The key's randomart image is:
+---[RSA 2048]----+
|        . o.  ..+|
|         B . E.B+|
|        o = O @+=|
|         o B # =.|
|        S = X B o|
|       + + = + + |
|        o . o    |
|                 |
|                 |
+----[SHA256]-----+

생성된 키 확인

$ ls -al id_rsa*
-rw------- 1 chlee chlee 1675 10월 22 10:37 id_rsa
-rw-r--r-- 1 chlee chlee  391 10월 22 10:37 id_rsa.pub

키 복사하기

생성된 키 중에서 id_rsa.pub 를 접속하려는 서버에 복사한다.

# authorized_keys 에 등록된 키가 없는 경우
client] $ scp .ssh/id_rsa.pub user-id@server-ip:.ssh/authorized_keys
# 등록된 키가 있는 경우 append 
client] $ scp .ssh/id_rsa.pub user-id@server-ip:.ssh/client_rsa.pub
server] $ cat .ssh/client_rsa.pub >> .ssh/authorized_keys

권한 확인하기

위에 작업까지 다 하고 권한문제로 수행이 안되는 경우가 많음.

server] $ chmod 700 $HOME
server] $ chmod 700 $HOME/.ssh
server] $ chmod 644 $HOME/.ssh/authorized_keys

권한에 의한 오류

권한에 의한 오류가 발생하는 경우에는 'ssh -v ...' 를 통해 오류 메시지를 확인할 수 있다.

$ ssh -v 127.0.0.1
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
... ...
Authenticated to 127.0.0.1 ([127.0.0.1]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Remote: Ignored authorized keys: bad ownership or modes for directory /home/chlee <<<< 확인해야할 오류 메시지
... ...
 

'OS > Linux' 카테고리의 다른 글

ubuntu 20.04 한영 한자 키 등록하기  (0) 2021.09.29
linux timezone 변경하기  (0) 2020.11.24
yum epel 404 error  (0) 2020.10.30
man, 'No manual entry for man' 해결하기  (1) 2019.09.04