Synology DiskStation の DiskStation Manager (DSM) のウェブ管理画面で SSH 機能を設定する
Synology DiskStation で SSH を有効にする
DiskStation Manager (DSM) のウェブ管理画面から「コントロールパネル」→「端末とSNMP」→「SSHサービスを有効化する」をクリック
Synology DiskStation でユーザーホームの設定を有効にする
注意:「ユーザーホームのサービスを有効にする」が無効になっていると、後述の /var/services/homes/ ディレクトリにアクセスできないので注意
DiskStation Manager (DSM) のウェブ管理画面から「コントロールパネル」→「ユーザー」→「詳細」→「ユーザーホーム」→「ユーザーホームサービスを有効にする」をクリック
Synology DiskStation に SSH ログインする
注意:SSH/Telnet は、[administrators] グループに属するユーザーでしかシステムにログインできない
注意:root 昇格の方法が DiskStation Manager (DSM) 6.0 以降は admin ユーザーでログイン後、sudo -i
コマンドの実行に変更されている
サーバ に SSH ログインする
ローカルマシンのターミナルから、Synology DiskStation の admin ユーザーと DiskStation のサーバ IP アドレス(今回の例では 192.168.1.10 )を指定して SSH ログインする
### 192.168.1.10 のサーバーに SSH ログインする
$ ssh -p 22 admin@192.168.1.10
### admin ユーザーのパスワードを入力する
admin@192.168.1.10's password:
### admin ユーザーでログインした状態で sudo -i と入力して root ユーザーに昇格する
admin@192.168.1.10:/$ sudo -i
### root ユーザーのパスワード( admin ユーザーのパスワードと同じもの)を入力する
Password:
### 成功するとプロンプトのユーザー表示が admin から root に変わる
root@192.168.1.10:~#
### 試しに OpenSSH のバージョンを ssh -V で確認してみる
root@192.168.1.10:~# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2r-fips 26 Feb 2019
【作業不要:デフォルト値で設定済み】 サーバの SSH 設定ファイルを編集
$ vim /etc/ssh/sshd_config
sshd_config ファイルの以下の部分のコメント(先頭にある#)を外して、SSHの設定をする
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
参考資料:manページ — SSHD_CONFIG
参考資料:OpenSSH-7.3p1 日本語マニュアルページ (2016/10/15) SSHD_CONFIG (5)
参考資料:OpenSSH (sshd) のデフォルト値
参考資料:SSH で root のみ公開鍵認証を強制する
秘密鍵・公開鍵を作る
ここでは、ローカルマシン上で、公開鍵・秘密鍵を生成する。ここでは、RSA を 4096bit 、コメントを fugafuga、ファイル名を hogehoge とした
$ ssh-keygen -t rsa -b 4096 -C "fugafuga" -f hogehoge
コマンドを実行すると作業ディレクトリに hogehoge
(秘密鍵)とhogehoge.pub
(公開鍵)ができる
参考資料:2017年版 SSH公開鍵認証で使用する秘密鍵ペアの作り方
公開鍵を設置する
注意:公開鍵は、/var/services/homes/
以下のユーザーディレクトリ( SSH ログインしたいユーザー名のディレクトリ)に設置する。 今回、使用するユーザーがuser
なので、SSH 設定ファイルは/var/services/homes/user/
に設置した。
.ssh
ディレクトリを作り、authorized_keys
のファイルを作成する
$ mkdir /var/services/homes/user/.ssh
$ touch /var/services/homes/user/.ssh/authorized_keys
vim
で authorized_keys
を開き、公開鍵(上記で作成したhogehoge.pub
の中身すべて)をコピペする
$ vim /var/services/homes/user/.ssh/authorized_keys
サーバのディレクトリのパーミッションを設定する
注意:パーミッションを正確に設定しないと、SSH ログインができない
参考:公式サイトには .ssh ディレクトリと authorized_keys のパーミッションを700
に設定する記述あり
参考:公式サイトには .ssh ディレクトリと authorized_keys の所有者とグループをroot
に設定する記述あり
以下は、筆者の設定例
$ chown -R user:users /var/services/homes/user/
$ chmod -R 755 /var/services/homes/user/
$ chmod 700 /var/services/homes/user/.ssh
$ chmod 644 /var/services/homes/user/.ssh/authorized_keys
sshd の設定ファイルの文法チェック
コマンド実行後に何も表示されなければ、文法チェックは正常終了(デバッグ出力をするには sshd -t -d
のように -d オプションを指定する)
$ sshd -t
sshd の再起動
注意: は SSH のコネクションがロストするsynoservicectl --restart sshd
ロストした場合は、ウェブ管理画面から「SSHサービスを有効化する」のオン→ オフ→ オンで復活できる
$ synoservicectl --reload sshd
ログインのテスト
初回は秘密鍵の指定が必須
$ ssh -i ~/.ssh/hogehoge user@hogehoge.com
次回からは秘密鍵の指定は不要
$ ssh user@hogehoge.com
TIPS: ~/.ssh/config
を設定すると便利になる
参考資料:~/.ssh/configについて
参考資料:.ssh/configファイルでSSH接続を管理する
参考資料:UseKeychainが設定されているMacのssh configをLinuxで使い回す
以上