매번 비밀번호를 사용해서 로그인하는 것은 너무나 번거로운 일이다.
접속할 컴퓨터에서 key-gen을 통해서 키가 생성되어 있어야 한다.

키 생성하기

$ ssh-keygen                                                                                                                                                                                                                                          Generating public/private rsa key pair.
Enter file in which to save the key (/Users/forteleaf/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in idid_rsa.
Your public key has been saved in idid_rsa.pub.
The key fingerprint is:
SHA256:lPQOOLrnc4N2dYOy0snymLKmibxGKTrx9Vijcn/GFOg forteleaf@leaf-macbook.local
The key's randomart image is:
+---[RSA 2048]----+
|        .        |
|       o o       |
|      o.+ .      |
|     ..o.o       |
|  . ..  S...     |
|oo  ..E o o o    |
|+o ..=.B = . .   |
|+oo.*oBo%        |
|o++=.==X..       |
+----[SHA256]-----+

키 복사하기

$ ssh-copy-id forteleaf@[freenas IP]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/forteleaf/.ssh/idid_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'forteleaf@freenas'"
and check to make sure that only the key(s) you wanted were added.

본인은 이미 키가 authorized_keys에 등록되어 있는 상태 이기 때문에 위와 같은 메세지가 나온다.
이제 바로 접속하면 된다.

접속

$ ssh forteleaf@[freenas IP]

참조 (서버 sshd 설정)

# /etc/ssh/sshd_config

#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys

#AuthorizedPrincipalsFile none

PubkeyAuthentication 이 설정되어 있어도 authorized_keys파일이 등록되어 있으면, 사용할 수 있다.

반응형
synology | ssh key값으로 비밀번호 없이 로그인

시놀로지에서도 ssh 접속을 할 때 키값으로 로그인 할 수 있는 방법이 있다.
일반 linux, 로그인에서도 사욤할 수 있다.

시놀로지를 기본으로 사용하고 있을 경우 home 폴더가 자동 생성 되지않는다.
옵션으로 설정을 해야 한다.

사용자별 home 폴더 생성

Imgur
[제어판] - [고급] 의 제일 하단메뉴 [사용자 홈]에서 사용자 홈 서비스 활성화를 체크한다.

홈 폴더가 있어야 해당 계정에 접속할 public key를 저장할 수 있다.

ssh-keygen

접속이 허용해야 될 컴퓨터에서 키를 생성해야 한다.

$ ssh-keygen
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/leaf/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx leaf@notebook.local

~/.ssh/ 폴더에 id_rsa, id_rsa.pub키가 생성 된 것을 확인할 수 있다.
이런 방식으로 생성된 키는 aws, git과 같은 서비스에 접속하는데 암호화키로 사용되어 진다.

public key 전송

ssh-copy-id

ssh-copy-id파일이 설치가 되어 있다면 간단히 public key 파일을 이동 등록 할 수 있다.
접속이 허용되어야 할 컴퓨터에서 아래와 같이 명령어를 실행한다.

# ssh-copy-id -i [id_rsa.pub 파일명] [사용자명]@example.com

위와 같은 명령어로 한방에 public key를 sshd가 설치되어 있는 서버에 설치한다.

홈파일 권한 설정

권한이 설정되어 있지 않으면, 접속을 해도 비밀번호를 요구하는 경우가 생긴다.
반드시 chmod명령어를 통해서 폴더 및 파일 권한을 확인하자.

chmod 755 /var/services/homes/abc
chmod 700 /var/services/homes/abc/.ssh
chmod 600 /var/services/homes/abc/.ssh/authorized_keys

이와 비슷하게 id_rsa, id_rsa.pub파일도 권한에 따라서 사용이 안 될수 있다.
반드시 숙지해야 할 부분이다. 매우 중요한 부분.

설정파일 수정

# vi /etc/ssh/sshd_config

아래와 같은 내용의 설정의 주석을 제거 한다.

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

그리고 sshd 서비스 재시작

# synoservicectl --restart sshd

서비스 재시작을 하고 난 뒤에 접속을 하려고 하면, 튕겨나는 상황이 발생하면, DSM제어판에 들어가 SSH 서비스 사용을 체크해제 저장하고 난 후 다시 체크상태로 하면 다시 접속 되는 것을 확인할 수 있다.


반응형

+ Recent posts