LoginSignup
9
10

More than 5 years have passed since last update.

Arch LinuxのSSHサーバにDropbearを使う

Last updated at Posted at 2017-07-09

概要

Linux環境でSSHサーバといえばOpenSSHになると思いますが、せっかくのArch Linuxで真っ新な状態なので、今回はDropbearを使ってみようと思います。

Dropbearは今まで知らなかったのですが、pacman -Ss sshで見つけて興味をひかれました。

個人的に初物なので設定に時間がかかるかと思いましたが、とても簡単でしたので、とりあえず手っ取り早くSSHデーモンを立てたい場合はDropbearも有力な選択肢かもしれません。

Dropbearとは

pacmanコマンドで見れる説明は、下記のようになっています。

community/dropbear 2017.75-1 [installed]
    Lightweight replacement for sshd

OpenSSHの代替となる軽量なSSHサーバ、ということですね。

公式サイトには、「Dropbear is particularly useful for "embedded"-type Linux (or other Unix) systems, such as wireless routers.」とあり、Raspberry Piで使われたりするようです。

インストール方法

Arch Linuxのリポジトリに含まれているため、pacmanコマンドでインストールできます。

# pacman -S dropbear

動かす

systemdのユニットファイルもインストール時に入ってくるので、簡単です。

# systemctl start dropbear.service

ついでに自動起動の設定もします。

# systemctl enable dropbear.service

動作確認

まず、ユーザの公開鍵を設置します。

ここは、OpenSSHを使った場合と変わりません。~/.ssh/authorized_keysに設置しましょう。

パーミッションもいつも通り、厳しめにしておいたほうがよいでしょう。つまり、~/.sshは700、~/.ssh/authorized_keysは600です。
(authorized_keysが644でも接続できたので、ここのチェックはOpenSSHほど厳密ではないのかもしれません)

あとは、いつも通りの方法で接続してみてください。ポートもいつも通り22です。

デフォルト設定をカスタマイズ

設定ファイルは無いようですが、基本的な設定は起動コマンドのオプションで指定できます。

デフォルトでは、下記のようになっています。

# grep 'ExecStart' /usr/lib/systemd/system/dropbear.service
ExecStart=/usr/bin/dropbear -F -P /run/dropbear.pid -R

私は、rootユーザによるログインとパスワード認証でのログインを禁止したかったので、下記のように変更しました。(オプションの意味は後述)

# grep 'ExecStart' /usr/lib/systemd/system/dropbear.service
ExecStart=/usr/bin/dropbear -F -P /run/dropbear.pid -R -w -s

設定を効かせます。

# systemctl daemon-reload
# systemctl restart dropbear.service

一行目は、ユニットファイルを修正したときに必要なコマンドです。二行目は、サービスの再起動です。(reloadはできませんでした。)

restartなので、今接続されているSSHコネクションはすべて切断される点に注意してください。

その他の設定可能な項目

-hで確認できます。

# dropbear -h
Dropbear server v2017.75 https://matt.ucc.asn.au/dropbear/dropbear.html
Usage: dropbear [options]
-b bannerfile   Display the contents of bannerfile before user login
                (default: none)
-r keyfile  Specify hostkeys (repeatable)
                defaults:
                dss /etc/dropbear/dropbear_dss_host_key
                rsa /etc/dropbear/dropbear_rsa_host_key
                ecdsa /etc/dropbear/dropbear_ecdsa_host_key
-R              Create hostkeys as required
-F              Don't fork into background
-E              Log to stderr rather than syslog
-m              Don't display the motd on login
-w              Disallow root logins
-s              Disable password logins
-g              Disable password logins for root
-B              Allow blank password logins
-j              Disable local port forwarding
-k              Disable remote port forwarding
-a              Allow connections to forwarded ports from any host
-p [address:]port
                Listen on specified tcp port (and optionally address),
                up to 10 can be specified
                (default port is 22 if none specified)
-P PidFile      Create pid file PidFile
                (default /var/run/dropbear.pid)
-i              Start for inetd
-W <receive_window_buffer> (default 24576, larger may be faster, max 1MB)
-K <keepalive>  (0 is never, default 0, in seconds)
-I <idle_timeout>  (0 is never, default 0, in seconds)
-V    Version

参考文献

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10