SSH 자동 로그인

ssh 접속시 password 입력없이 자동으로 로그인하는 방법이다.

SSH Key 만들기

ssh 자동 로그인은 공개키, 비공개키를 사용한다. 키를 생성하자.

키파일명과 키파일을 어느 폴더에 만들지, 비공개키를 암호활지를 물어본다. 암호화를 하면 로그인시마다 비밀번호를 물어보기 때문에 자동로그인의 의미가 없다. 모두 Enter를 하여 넘어가면 키가 생성된다.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
1a:77:a8:78:76:e6:b1:05:84:1d:6b:35:08:c2:ba:b3 user@local
The key's randomart image is:
+--[ RSA 2048]----+
|   .. ....o      |
|    .. o.+ .     |
|   .  . =        |
|  .    o .       |
|   .  . S .      |
|  o  . = o       |
|   o. = + .      |
|  E  o + +       |
|        o        |
+-----------------+

$ chmod 700 ~/.ssh ; chmod 644 ~/.ssh/* ; chmod 600 ~/.ssh/id_rsa

$ ls -lrt ~/.ssh
total 8
-rw-r--r-- 1 user user  402 Feb 22 16:41 id_rsa.pub
-rw------- 1 user user 1675 Feb 22 16:41 id_rsa

id_rsa.pub이 공개키고 id_rsa가 비공개키다. 비공개키는 절대 외부에 노출되면 안된다. 파일에 권한설정(chmod)를 하자. 키폴더에 그룹,기타사용자의 모든 권한을 회수하고(700) 비공개키는 나만 보고쓸수있어야 하고(600) 공개키는 읽기만(644) 되도록 한다.(ssh-keygen이 기본적으로 권한설정을 한다.)

SSH Key 복사하기

이제 이렇게 생성된 공개키를 자동으로 접속하고자 하는 서버의 authorized_keys에 복사한다.

$ ssh-copy-id user@server.xxx
user@server.xxx's password:
Now try logging into the machine, with "ssh 'user@server.xxx'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

위 커맨드를 입력하면 해당 서버로 접속할 패스워드를 물어본다. 패스워드를 입력하면 해당 사용자의 ~/.ssh/authorized_keys에 위에서 생성한 공개키를 복사한다.

이걸로 설정이 끝났다. 이제 ssh user@server.xxx를 하면 비공개키와 공개키를 이용하여 인증을 거친뒤, 암호입력없이 바로 접속이 이루어진다.

alias를 설정하면 쉽게 접속할 수 있다.

$ alias autologin='ssh user@server.xxx'
$ autologin
Last login: Thu Feb 22 17:00:12 2018 from 192.0.0.1
$ 

References

comments powered by Disqus