自宅で運用しているQNAP TS-419P+にOpenSSHを導入した。
標準で導入されるSSHは、adminでしかログインできない。さらに、ユーザーのホームディレクトリを /root されてしまって困るので、OpenSSH に変更することにした。
- まずユーザーのホームフォルダを有効にしておく。「コントロールパネル」→「権限設定」→「ユーザ」にある「ホームフォルダ」ボタンを押すとポップアップが開き、「全ユーザーのホームフォルダを有効かする」をチェックして「適用」を押すとNAS上にホームフォルダが作成される。ホームフォルダ(/share/homes)直下に各ユーザーのディレクトリを作成し、パーミッションを適切に設定しておく(700とか711とか755とか705とか)。
- 「AppCenter」→「開発者ツール」にある Optware IPKG を QTS に追加する。
- 標準のSSHのポートを変更しておく。「コントロールパネル」→「ネットワークサービス」→「Telnet/SSH」でポート番号を設定できるので、例えば220番に設定。このSSHにつなぐには
|
$ ssh -p 220 admin@<IPアドレス> |
のようにするとよい。
- OpenSSH のインストール。コマンドラインから
|
$ ipkg update $ ipkg install openssh |
- host鍵を作成
|
$ ssh-keygen -f /opt/etc/openssh/ssh_host_ecdsa_key -t ecdsa -N '' |
- OpenSSH を起動
|
$ /opt/etc/init.d/S40sshd start |
- autorun.sh を編集。まず
|
$ vim /etc/config/qpkg.conf |
としてから、autorun という dummy package を記述する。
|
[autorun] Name = autorun Version = 1.0 Author = me Date = 2015-01-01 Shell = /share/MD0_DATA/.qpkg/autorun/autorun.sh Install_Path = /share/MD0_DATA/.qpkg/autorun QPKG_File = autorun.qpkg Enable = TRUE |
あわせてOpenSSHの起動スクリプトを
|
$ vim /share/MD0_DATA/.qpkg/autorun/autorun.sh |
で記述
|
#!/bin/sh /opt/etc/init.d/S40sshd start |
実行権限を付与して完了
|
$ chmod +x /share/MD0_DATA/.qpkg/autorun/autorun.sh |
これでssh接続して、きちんと各ユーザーでログインできるか、そしてホームディレクトリが/share/homes直下になっているかを確認。
- パスワードなしで認証できるよう、クライアントの公開鍵をサーバに登録する
|
$ cat id_rsa.pub | ssh user@<IPアドレス> "cat >> ./.ssh/authorized_keys" |
これで作業完了。ちなみに、公開鍵を登録しても全然パスワード認証を回避できなかったので ssh を debug (verbose) モードで起動して確認してみた:
すると
debug1: Remote: Ignored authorized keys: bad ownership or modes for directory /share/MD0_DATA/homes/user
なんていうエラーが出ていた。これに気づかず延々と無駄な努力をしていた… orz
参考