SSH Key 만들기 & 설정
ssh-keygen
ssh-keygen 커멘드를 이용해서 키를 생성한다.
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):[엔터키]
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.
Code language: Bash (bash)
~/.ssh
폴더에 id_rsa
, id_rsa.pub
키가 생성된다.
public key synology에 전송 (with: ssh-copy-id)
ssh-copy-id
커맨드가 가능하다면 간단하게 public key
파일을 전송할 수 있다.
ssh-copy-id
는 로컬호스트의 공용 키를 원격 호스트의 authorized_keys
파일에 복사합니다. 그리고 알맞은 권한을 remote-host 유저의 아래 목록 파일, 폴더에 부여합니다.
- 홈
~/
~/.ssh
~/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
Code language: Bash (bash)
위 명령어를 실행하면 ssh 로그인을 시도
home 파일 권한 확인
권한이 ssh-copy-id
로 설정되겠지만 한번더 확인합시다.
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Code language: Bash (bash)
Synology sshd config
sudo vim /etc/ssh/sshd_config
Code language: Bash (bash)
아래와 같은 내용으로 설정을 변경해준다.
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Code language: plaintext (plaintext)
DSM7.0으로 넘어오면서 RSAAuthentication yes
이 설정이 없어서 업그레이드하면서 제거된 줄 알았다. 없으면 추가해주자.
sudo synoservicectl --restart sshd # DSM6.0
sudo synosystemctl restart sshd # DSM7.0
Code language: Bash (bash)
이렇게 설정했다면 정상적으로 Synology server ssh를 key를 통해서 접속할 수 있다.
✅ 비밀번호 접속 제한 (option)
나는 ssh key 설정을 빠른 로그인을 위해서 설정한 것이 아니라 보안을 위해서 설정했다. 그래서 위 설정으로도 따로 비밀번호로 접속할 수 있기 때문에 비밀번호로 접속하는 것을 제한하고싶다.
어떻게 제한하나?
sudo vim /etc/ssh/sshd_config
Code language: Bash (bash)
PasswordAuthentication no
Code language: plaintext (plaintext)
sudo synoservicectl --restart sshd # DSM6.0
sudo synosystemctl restart sshd # DSM7.0
Code language: Bash (bash)
변경해주면 된다.