リファレンス
openssh-serverのインストール
- リポジトリ一覧を更新
$sudo apt update [sudo] password for cutxout: ヒット:1 http://ports.ubuntu.com bionic InRelease ヒット:2 http://ports.ubuntu.com bionic-updates InRelease ヒット:3 http://ports.ubuntu.com bionic-security InRelease ヒット:4 http://ppa.launchpad.net/ubuntu-pi-flavour-makers/ppa/ubuntu bionic InRelease ヒット:5 http://ports.ubuntu.com bionic-backports InRelease パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 パッケージはすべて最新です。
- パッケージを更新
$sudo apt upgrade パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレードパッケージを検出しています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 grub-common libdebian-installer4 libtimezonemap-data libtimezonemap1 os-prober python3-icu python3-pam rdate これを削除するには 'sudo apt autoremove' を利用してください。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
- openssh-serverをインストール
$sudo apt install openssh-server パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 openssh-server はすでに最新バージョン (1:7.6p1-4ubuntu0.3) です。 以下のパッケージが自動でインストールされましたが、もう必要とされていません: apt-clone archdetect-deb cryptsetup-bin dpkg-repack gir1.2-json-1.0 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 grub-common libdebian-installer4 libtimezonemap-data libtimezonemap1 os-prober python3-icu python3-pam rdate これを削除するには 'sudo apt autoremove' を利用してください。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
- sshを再起動
$sudo /etc/init.d/ssh restart [ ok ] Restarting ssh (via systemctl): ssh.service.
- システム起動時にsshが起動するようにする
$sudo /etc/init.d/ssh restart [ ok ] Restarting ssh (via systemctl): ssh.service. $ sudo systemctl enable ssh Synchronizing state of ssh.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable ssh
Firewallの設定
- ufwの状態確認
$sudo ufw status Status: inactive
- 192.168.100.0/24セグメントからRaspberry Piへport 22でアクセス出来るようにする
$sudo ufw allow proto tcp from 192.168.100.0/24 to any port 22 [sudo] password for cutxout: Rules updated
- ufwの有効化
$sudo ufw enable #今回はinactiveのままにしておく
SSHホストキーの生成
- ホストキーが自動生成されず、エラーになっていることを確認
$service ssh status ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-06-12 19:10:35 JST; 15min ago Process: 1322 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS) Process: 1316 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Process: 937 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 948 (sshd) Tasks: 1 (limit: 2154) CGroup: /system.slice/ssh.service └─948 /usr/sbin/sshd -D 6月 12 19:10:43 rp3 sshd[948]: Server listening on 0.0.0.0 port 22. 6月 12 19:10:43 rp3 sshd[948]: Server listening on :: port 22. 6月 12 19:12:56 rp3 sshd[2213]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key 6月 12 19:12:56 rp3 sshd[2213]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key 6月 12 19:12:56 rp3 sshd[2213]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key 6月 12 19:12:56 rp3 sshd[2213]: fatal: No supported key exchange algorithms [preauth] 6月 12 19:23:51 rp3 sshd[2279]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key 6月 12 19:23:51 rp3 sshd[2279]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key 6月 12 19:23:51 rp3 sshd[2279]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key 6月 12 19:23:51 rp3 sshd[2279]: fatal: No supported key exchange algorithms [preauth]
- ホストキーを手動で生成する
$sudo ssh-keygen -A ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
- sshを再起動
$sudo /etc/init.d/ssh restart [ ok ] Restarting ssh (via systemctl): ssh.service.
- 動作確認
$service ssh status ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-06-12 20:20:39 JST; 7s ago Process: 1314 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS) Process: 1307 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Process: 2865 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 2866 (sshd) Tasks: 1 (limit: 2154) CGroup: /system.slice/ssh.service mq2866 /usr/sbin/sshd -D 6月 12 20:20:39 rp3 systemd[1]: Starting OpenBSD Secure Shell server... 6月 12 20:20:39 rp3 sshd[2866]: Server listening on 0.0.0.0 port 22. 6月 12 20:20:39 rp3 sshd[2866]: Server listening on :: port 22. 6月 12 20:20:39 rp3 systemd[1]: Started OpenBSD Secure Shell server.
- ここまで設定すれば、パスワード認証でリモートログインできるようになっているはず
/etc/ssh/sshd_confの設定変更
- rootログインを拒否
PermitRootLogin no
- RSA認証を有効にする
RSAAuthentication yes #不要かもしれないので、コメントアウトして様子見
- 公開鍵認証を有効にする
PubkeyAuthentication yes
- 公開鍵登録ファイルのパスと名前
AuthorizedKeysFile .ssh/authorized_keys # ~/.ssh/authorized_keys
- パスワード認証を禁止する
PasswordAuthentication no PermitEmptyPasswords no
- チャレンジレスポンス認証を禁止する
ChallengeResponseAuthentication no
公開鍵認証用の鍵ペアを生成
- 公開鍵をRaspberry Piに転送する
- authorized_keysに公開鍵を登録する
cat PUBKEY >> ~/.ssh/authorized_keys
- パーミッションを設定する
chmod 700 ~/.ssh/ chmod 600 ~/.ssh/authorized_keys
設定を反映して動作確認する
$sudo /etc/init.d/ssh restart [sudo] password for cutxout: [ ok ] Restarting ssh (via systemctl): ssh.service. sudo service ssh status ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-06-13 20:36:02 JST; 1min 5s ago Process: 3612 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 3613 (sshd) Tasks: 1 (limit: 2154) CGroup: /system.slice/ssh.service └─3613 /usr/sbin/sshd -D 6月 13 20:36:02 rp3 systemd[1]: Starting OpenBSD Secure Shell server... 6月 13 20:36:02 rp3 sshd[3612]: /etc/ssh/sshd_config line 37: Deprecated option RSAAuthentication 6月 13 20:36:02 rp3 sshd[3613]: /etc/ssh/sshd_config line 37: Deprecated option RSAAuthentication 6月 13 20:36:02 rp3 sshd[3613]: Server listening on 0.0.0.0 port 22. 6月 13 20:36:02 rp3 sshd[3613]: Server listening on :: port 22. 6月 13 20:36:02 rp3 systemd[1]: Started OpenBSD Secure Shell server.
- Poderosaでログインする
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1037-raspi2 armv7l) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 個のパッケージがアップデート可能です。 0 個のアップデートはセキュリティアップデートです。 Last login: Thu Jun 13 20:39:37 2019 from 192.168.100.2
- /var/log/auth.logを確認する
Jun 13 21:09:16 rp3 sshd[4301]: Accepted publickey for cutxout from 192.168.100.2 port 53351 ssh2: RSA SHA256:NaQV8nsudS/hnEaPcrxUBtM6xbEZWd/sgQ5g3aqjx+8 Jun 13 21:09:16 rp3 sshd[4301]: pam_unix(sshd:session): session opened for user cutxout by (uid=0) Jun 13 21:09:16 rp3 systemd-logind[774]: New session 12 of user cutxout. Jun 13 21:09:52 rp3 sudo: cutxout : TTY=pts/1 ; PWD=/home/cutxout ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
- できました!
Windows Subsystem for Linuxのopenssh clientでログインする
- 公開鍵と秘密鍵のペアを生成する
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/cutxout/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cutxout/.ssh/id_rsa. Your public key has been saved in /home/cutxout/.ssh/id_rsa.pub. The key fingerprint is: SHA256:wMQQ8Z24Ci6fLdSTkfhF1qEUap4s9k4QosKG80XfL5I cutxout@selene The key's randomart image is: +---[RSA 2048]----+ | +=+o.. | | *++.. | |. ..++* o | |+..*oo.+ | |=o=o=+o S | |o=.*=. . . | |..o +.E . . | | o.= . . | | o.o | +----[SHA256]-----+
- 公開鍵をRaspberry Piに転送する
- 公開鍵をRaspberry Piのauthorized_keysに登録する
- ログインする
ssh cutxout@192.168.100.4 Enter passphrase for key '/home/cutxout/.ssh/id_rsa': Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1037-raspi2 armv7l) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 個のパッケージがアップデート可能です。 0 個のアップデートはセキュリティアップデートです。 Last login: Thu Jun 13 21:10:56 2019 from 192.168.100.2
- できました!
- 若干トラブルに遭遇したのは、Poderosaで作成した鍵ペアはWSL側に使い回せないことを知らなかった所為です...orz