본문 바로가기

IT

ssh 연결 시 패스워드 사용하지 않는 방법

반응형

콘솔을 통하여 빈번하게 서버에 SSH 를 통한 접속을 하는 경우, 아이디 패스워드를 입력하는 것은 고역입니다.




SSH 접속 시 클라이언트의 공개키를 접속하는 서버측에 저장해 놓고, 인증을 비밀번호 없이 통과하는 방법과 ssh config 설정을 통하여 접속하려는 서버의 별명(Alias) 를 설정하는 방법에 대해서 글을 써보겠습니다.



1. SSH 연결 시 비밀번호를 입력하지 않도록 설정


1) 자신의 PC(클라이언트) 에 ssh key 생성

 아래 명령어를 이용하여 ssh key 를 생성합니다.


$ ssh-keygen


  위 명령어를 입력하는 경우, 진행 중 몇가지를 질의가 나오는데, 빠르게 진행하기 위해서 기본값을 모두 사용하는 쪽으로 진행합니다. 파일을 어디에 생성할 것인지, passphrase 를 입력할 것인지를 물어본 이후 id_rsa, id_rsa.pub 파일 2개가 로그인한 사용자의 home 폴더의 .ssh 폴더에 생성됩니다.


 아래는 콘솔 출력로그입니다.


dante2k@dante2k-Y580:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dante2k/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dante2k/.ssh/id_rsa.
Your public key has been saved in /home/dante2k/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qN1cLrpcu6POSemE3jr3q0+PIMp8QzBUwxvwDwe7RbA dante2k@dante2k-Y580
The key's randomart image is:
+---[RSA 2048]----+
|  .+=..          |
|  ..o*           |
| .  Eoo          |
|  o .* .         |
|   o. o S .      |
|    .+ + o       |
|   .+ * * .      |
| o o+O.*.=       |
|  +.o*%*B+.      |
+----[SHA256]-----+


 /home/dante2k/.ssh 폴더로 이동하여 내용을 살펴보면 아래와 같습니다.


dante2k@dante2k-Y580:~/.ssh$ ls -al
total 20
drwx------  3 dante2k dante2k 4096 2018-09-28 23:52 .
drwxr-xr-x 47 dante2k dante2k 4096 2018-09-28 23:50 ..
-rw-------  1 dante2k dante2k 1679 2018-09-28 23:52 id_rsa
-rw-r--r--  1 dante2k dante2k  402 2018-09-28 23:52 id_rsa.pub


2) 생성된 공개키를 서버측(접속하려는 서버)에 설치합니다.

 아래 명령어를 입력하여 설치를 시도합니다.


$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.server.com


 정상적으로 실행되었다면 접속 시 사용하는 패스워드를 입력하면, 공개키가 정상적으로 설치되었다는 로그가 출력됩니다.


user@remote.server.com's password: ********
Now try logging into the machine, with "ssh 'user@remote.server.com'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.


이제부터는 해당 서버에 접속할 때 패스워드를 입력할 필요가 없습니다.



2. 접속하려는 서버의 별칭(Alias) 로 더 편리하게 접속하기

 별칭을 만드는 방법은 .ssh 폴더에 config 이라는 파일을 만들고, 접속하려는 서버의 별칭과, HostName, User 을 작성하면 됩니다.


 위의 ssh 공개키를 복사한 서버를 좀 더 간단히 rserver 라는 별칭으로 접속하고 싶다라고 했을 경우 작성하는 방법입니다.


 작성은 vi 나 mousepad, gedit 등을 사용하여 config 이라는 이름의 텍스트 파일을 만듭니다. 내용은 아래와 같습니다.


Host rserver
        HostName remote.server.com
        User user


Host googleapi

        HostName api.google.com
        User admin


 2개의 서버에 대해서 예시를 작성해 보았습니다. config 파일을 작성한 이후에 ssh 접속 시 간편하게 줄여 쓸 수 있습니다.

 물론 자동완성 기능을 지원하는 경우, tab 버튼을 누르면 접속할 수 있는 서버 목록에도 표시됩니다.


 이후부터는 아래와 같은 방법으로 접속이 가능합니다.


$ ssh rserver

또는

$ ssh user@remote.server.com


 자주 접속하는 서버의 경우, 훨씬 편리하게 이용할 수 있겠지요?



 이상으로 ssh 접속 시 비밀번호를 입력하지 않는 방법, ssh 접속 서버의 별칭을 만드는 방법이었습니다. 끝.

반응형