Debian noroot 環境で dropbear を用いて SSH サーバを起動する
はてなブログでは、1年以上振りの御無沙汰です。 全身倦怠感が続いたり、副鼻腔炎になったり、腰部椎間板を痛めたり色々有りますが、 とりあえず何とかなってます。
追記 (2018/12/06)
遅くなりましたが、本稿を加筆修正して、2017/04/14 付で Qiita 半島に投稿しました。今後は、本記事の訂正等は、 Qiita 半島の投稿の方で行います。どうか御了承下さい。
はじめに
さて、ここ最近は忙しい割に無駄に時間が余る状況が続いた為か Debian noroot 環境で色々と技術的な Topic が出てきました。
ここで、 Dropbear を用いて Debian noroot 環境で SSH サーバを起動する手法について述べます。詳細については後日改めて纏める予定です。
dropbear 及び openssh-sftp-server のインストール
先ず最初に Debian noroot 環境にパッケージ dropbear, openssh-sftp-server
を下記のようにインストールします。
$ sudo apt-get install dropbear openssh-sftp-server
dropbear の設定
次に、 dropbear
の設定ファイルである /etc/default/dropbear
を以下のように修正します。
... # 待ち受けポート番号は必ず 1024 番以上に設定しておく。この場合は 12022 番に設定する。 # ↓ # the TCP port that Dropbear listens on DROPBEAR_PORT=12022 # dropbear コマンドに渡す引数を指定する。 # -w オプションで root ログインを抑止。 -s オプションでパスワードを用いたログインを抑止。 # -g オプションでパスワードを用いた root ログインを抑止。 -F オプションでサーバデーモンをフォアグラウンドで起動する。 # -E オプションでデーモンのログを標準エラー出力に出力する。 # ↓ # any additional arguments for Dropbear DROPBEAR_EXTRA_ARGS="-w -g -s -F -E" ...
そして、 Debian noroot 環境の最後の起動ファイルである /startx.sh
に以下の行を追加・修正します。
... # dbus-daemon を起動する行の直後に dropbear を起動する為の /etc/init.d/dropbear restart を追加する。ログを /var/log/dropbear.log に書き出し、 # /etc/init.d/dropbear restart の行をバックグラウンドで動作させるのを忘れないようにする。 # ↓ fakeroot-tcp /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin dbus-daemon --system fakeroot-tcp /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /etc/init.d/dropbear restart >> /var/log/dropbear.log 2>&1 & ... # xfce4-session の終了後に /etc/init.d/dropbear stop によって dropbear を終了させる。 # ↓ dbus-launch --exit-with-session sh -c 'xfce4-session ; /etc/init.d/dropbear stop; setsid sh -c "cd /proc/ ; for f in [0-9]* ; do [ \$f = \$\$ ] || kill -9 \$f ; done"' &
以上の設定を行った後は、接続元となる PC 等の端末で SSH 用の公開鍵と秘密鍵を適当な手法で生成し、公開鍵を適当な手法で Debian noroot 環境に送信します。
そして、 Debian noroot 環境に送信された公開鍵をファイル ${HOME}/.ssh/authorized_keys
に下記のように書き込みます。
$ cat /path/to/public_key >> ${HOME}/.ssh/authorized_keys
最後に Debian noroot 環境を再起動し、実際に接続元となる PC 等の端末から Debian noroot 環境にログイン出来ることを確認します。