NASの設定やDockerの操作をターミナルから直接行いたいとき、SSHが使えると作業効率が大幅に上がります。パスワードなしでログインできる公開鍵認証を設定しておけば、毎回パスワードを入力する手間もなくなります。
この記事では、DS720+(DSM 7.3.2)でSSHを有効にして、Macから公開鍵認証で接続するまでの手順を紹介します。
環境
| 項目 | 内容 |
|---|---|
| NAS | Synology DS720+ |
| DSM | 7.3.2-86009 Update 3 |
| クライアント | macOS(ターミナル) |
| 認証方式 | 公開鍵認証(ed25519) |
Windowsから接続する場合
この記事のコマンドはMac/Linuxのターミナル向けですが、考え方はWindowsでも同じです。Windows 10/11なら標準のOpenSSH(PowerShellでsshコマンド)が使えるほか、Tera Term や RLogin といったGUIのSSHクライアントも定番です。なかでもRLoginは接続先ごとに設定(ホスト・ポート・鍵)を保存して管理でき、複数のサーバーを扱うときに使いやすいので、筆者はWindows環境ではRLoginを使っています。
STEP 1: DSMでSSHサービスを有効にする
- DSMのコントロールパネルを開く
- 「端末とSNMP」 をクリック
- 「端末」 タブを選択
- 「SSHサービスを有効化」 にチェックを入れる
- ポート番号を確認(デフォルト: 22)
- 「適用」 をクリック

ポート番号について
デフォルトの22番ポートはブルートフォース攻撃のターゲットになりやすいため、外部公開する場合は別のポート(例: 8022)への変更を推奨します。ローカルネットワーク内のみで使用する場合は22のままでも問題ありません。ポートを変更した場合は、以降のコマンドでそのポート番号を指定する必要があります(後述)。
STEP 2: パスワード認証でSSH接続を確認する
設定が反映されたか、まずパスワード認証で接続を確認します。
Macのターミナルを開いて以下を実行します。
ssh username@192.168.1.100
usernameはDSMのユーザー名、192.168.1.100はNASのIPアドレスに置き換えてください。IPアドレスはDSMの情報センター → ネットワーク で確認できます。
デフォルト以外のポートにした場合
STEP 1でポート番号を22から変更したときは、-pオプションでポートを指定します。以降のssh-copy-idも同様に-pでポートを指定します。
ssh -p 8022 username@192.168.1.100
初めて接続するホストには、接続先が本物かを確認するフィンガープリント(fingerprint)の確認メッセージが表示されます。
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
yes と入力してEnterを押すと、このホストの鍵が ~/.ssh/known_hosts に登録され、次回以降この確認は表示されなくなります。
フィンガープリントとは
接続先サーバーの公開鍵から計算される識別子で、なりすまし(中間者攻撃)を防ぐための確認です。表示された値がNAS側の鍵と一致していれば安全に接続できます。NAS側の値は、DSMにSSHログイン後にssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubで確認できます。自宅のローカルネットワーク内であれば、通常はそのままyesで進めて問題ありません。
パスワードを入力してログインできればSSHは正常に動作しています。
username@nas:~$
接続確認後、exitで抜けます。
STEP 3: Macで鍵ペアを生成する
ターミナルで以下のコマンドを実行します。
ssh-keygen -t ed25519 -C "nas-key"
実行すると保存先とパスフレーズを聞かれます。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519): # Enterでデフォルト
Enter passphrase (empty for no passphrase): # 任意(空でもOK)
Enter same passphrase again:
デフォルトのまま進めると、以下の2ファイルが生成されます。
| ファイル | 内容 |
|---|---|
~/.ssh/id_ed25519 |
秘密鍵(絶対に公開しない) |
~/.ssh/id_ed25519.pub |
公開鍵(NASに登録する) |
すでに鍵ペアがある場合:
ls ~/.ssh/で確認してください。id_ed25519が存在する場合は新規生成不要です。
STEP 4: 公開鍵をNASにコピーする
ssh-copy-idコマンドで公開鍵を自動的にNASへ登録します。
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@192.168.1.100
パスワードを入力するとNAS側の~/.ssh/authorized_keysに公開鍵が追記されます。
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@192.168.1.100'"
ポートを変更している場合は
-pでポートを指定します。
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 8022 username@192.168.1.100
STEP 5: 公開鍵認証で接続を確認する
もう一度SSH接続してみます。
ssh username@192.168.1.100
パスワードを聞かれずにログインできれば成功です。
username@nas:~$
接続をシンプルにする(~/.ssh/config)
毎回IPアドレスとユーザー名を入力するのは手間なので、~/.ssh/configにエイリアスを設定しておくと便利です。
nano ~/.ssh/config
以下を追記します。
Host nas
HostName 192.168.1.100
User username
Port 8022
IdentityFile ~/.ssh/id_ed25519
Port行は、SSHポートを22から変更した場合に追加します(デフォルトの22のままなら省略可)。configにポートを書いておけば、接続時に毎回-pを付ける必要がなくなります。
保存後、以下のコマンドだけで接続できるようになります。
ssh nas
まとめ
| 手順 | 内容 |
|---|---|
| SSHサービスの有効化 | DSM → コントロールパネル → 端末とSNMP |
| 初回接続時のフィンガープリント確認 | 表示されたら yes で known_hosts に登録 |
| デフォルト以外のポート | ssh -p <ポート> で指定(config なら Port 行) |
| 鍵ペアの生成 | ssh-keygen -t ed25519 |
| 公開鍵の登録 | ssh-copy-id でNASへコピー |
| 接続の簡略化 | ~/.ssh/config にエイリアスを設定 |
SSHが使えるようになると、DockerコンテナのログをCLIで確認したり、ファイルの権限変更を直接行うなど、GUIでは難しい操作がスムーズにできるようになります。


コメント