Posted at

QNAP SSH接続を公開鍵認証にする

More than 3 years have passed since last update.


やりたいこと


  • ssh 接続認証を、パスワード認証ではなく公開鍵認証にしたい。


知っておくべきこと


QNAP デフォルトの sshd 設定



  • admin ユーザーによる接続のみ許可

  • port 22

  • 公開鍵認証ではなく、パスワード認証


  • /etc/ssh/sshd_config が再起動毎に上書きされるので、設定が初期化される


    • これを防ぐため、QNAP 公式 Wiki にある 再起動毎に任意の処理を自動実行する方法にならって設定する




設定を変更する

ssh の有効化, ポート変更は Web管理画面から。

ssh 用のポートは DYNAMIC AND/OR PRIVATE PORTS である 49152 - 65535 内で適当に選ぶかんじ。

ssh-config-in-web-control-panel.png

いちおう ssh のバージョン確認して最新版であるかどうか見た。

# ssh -V

OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014

/etc/config/qpkg.confautrun という名前のダミーパッケージを追記することで、

QNAP 再起動毎に指定したシェルスクリプトが実行されるようになる。


/etc/config/qpkg.conf

[autorun]

Name = autorun
Version = 0.1
Author = neomilium
Date = 2015-01-03
Shell = /share/CACHEDEV1_DATA/.qpkg/autorun/autorun.sh
Install_Path = /share/CACHEDEV1_DATA/.qpkg/autorun
Enable = TRUE


/etc/ssh/sshd_config

- PubkeyAuthentication no

+ PubkeyAuthentication yes

:

- PasswordAuthentication yes
+ PasswordAuthentication no


# chmod +x /share/CACHEDEV1_DATA/.qpkg/autorun/autorun.sh

# ls -la /share/CACHEDEV1_DATA/.qpkg/autorun/autorun.sh
-rwxr-xr-x 1 admin administ 105 Jan 3 04:58 /share/CACHEDEV1_DATA/.qpkg/autorun/autorun.sh

# cp -p /etc/ssh/sshd_config /share/CACHEDEV1_DATA/.qpkg/autorun/

# ls -la /share/CACHEDEV1_DATA/.qpkg/autorun/
drwxr-xr-x 2 admin administ 4096 Jan 3 05:40 ./
drwxrwxrwx 11 admin administ 4096 Jan 3 04:27 ../
-rwxr-xr-x 1 admin administ 105 Jan 3 04:58 autorun.sh
-rw-r--r-- 1 admin administ 3104 Jan 3 03:29 sshd_config

# reboot

クライアント側から ssh 接続を試してログインできなくなっていることを確認する。

$ ssh -p 58888 admin@192.168.10.100                                                                

Permission denied (publickey,keyboard-interactive).

クライアント側で ~/.ssh/config を設定する。


~/.ssh/config

+ Host nas01-ts251.admin

+ HostName 192.168.10.100
+ Port 58888
+ IdentityFile ~/.ssh/nas01-ts251.admin.key
+ User admin

ふたたび ssh 接続を公開鍵認証で試して動作確認する。

$ ssh nas01-ts251.admin


参考


あとあんまり関係ない話

QNAP 試しに買ってみたけど、 ssh で接続していじるってなると、慣れてるディストリビューションとかなり構成違うし、インフラ系強い人は、自分で組んだ方がいいのかもと思った。そこまでやる気ないのであれば十分に時間を節約してくれるので、金で時間を買うかんじ。

コンパクトにパーツを組むところから自分で選ぶのがだるいので、買っとくかと思って買ったけど、身近な RedHat系や Debian系とかなり構成違うのでそこそこ学習コストある。そのあたりはトレードオフぽい。

QNAP 買ったあとで、Synology が好評なのを知って、こっちにすれば良かったかもなとちらっと思った。

用途としては、音楽ファイル、あと以前はイラストレーションやデザインぽい仕事を多くやってて、素材や制作物とかの保管しておくべきデータがサイズでかいので、そういうやつのバックアップ + いちおうすぐアクセスできるようにしとく、みたいなかんじ。

基本的に、あんまり自宅にでかいストレージを抱えて保守していくのは、いまどきあんまりスマートじゃないみたいな気持ちがある。ハッカー気質な人がちゃんと自分で組んで運用してるのはかっこいいなと思うので、そういうのは除くけど。