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