Ubuntu MATE (18.04.2) にsshで接続するための設定

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.
cutxout@rp3:~/.ssh$ 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

公開鍵認証用の鍵ペアを生成

  • Poderosa -> ツール -> SSH鍵作成ウィザードで、秘密鍵とOpenSSH形式の公開鍵を保存する

f:id:cutxout:20190613202933j:plain
f:id:cutxout:20190613203021j:plain

  • 公開鍵を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.
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]-----+
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