2017年3月11日土曜日

Raspbianのsshとsshd

最新(2017年3月2日リリース)のRaspbian JessieをPaspberry Pi 3で使ってみようと思い、OSイメージをダウンロードした。バージョンは以下の通り。

OSバージョン


カーネルバージョン


SDカードにイメージファイルをコピーして起動し、いざsshで接続しようとしたがつながらない。pingは通るのでネットワークにはつながっているよう。

仕方ないのでHDMIケーブルとキーボードをつなげて調べてみると、sshが無効になっている。調べるとRaspberry Piのホームページに情報があった。どうやらsshはデフォルトで無効になっているようだ。
First, from now on SSH will be disabled by default on our images.
sshを有効にするには、wheezyでは/etc/inid.d/ssh startだったけれど、Jessieではサービス管理コマンドが変わってsystemctlを使う(/etc/inid.d/ssh startも使える)。


これだけだとOSを再起動したときに無効になってsshで接続できないので、OS起動時に自動的に起動するようにする。


自動起動の設定を確認する。enabledになっていれば自動起動する。


ただ気になったのが、ssh.serviceとsshd.serviceがある。Jessieから使えるようになったsystemdではunit単位で処理が管理され、unitごとに定義ファイルがある。定義ファイルの場所は/etc/systemd/system配下。ssh.serviceとsshd.serviceそれぞれの定義ファイルを確認してみる。





ssh.service、sshd.serviceともに、/lib/systemd/system/ssh.serviceのシンボリックリンクになっている。同じunit定義ファイルなので、ssh、sshdどちらでも結果はかわらないことになる。定義ファイルの中身は以下の通り。



実行ファイルは/usr/sbin/sshd。ちなみにコマンドのsshはsshクライアントのことなので/usr/sbin/sshdとは別物。


でもなぜssh.serviceとsshd.serviceが存在するのだろう。wheezyでは/etc/inint.d/sshコマンドを使用していたけれど、sshクライアントと紛らわしいからJessieではsshdをつくったのかもしれない。ただ、今までsshを使っていた人が混乱するのを避けるためにsshも残したのだろうか。いずれにしても、CentOSはもともとsshdなので、sshdに統一してもらった方が紛らわしくなくていい。

0 件のコメント:

コメントを投稿