技術的な話

Ubuntu内の設定で完結するWSL2のUbuntuへのSSH接続設定

環境

  • Windows10 Pro
  • WSL2
  • Ubuntu 20.04.1

デフォルトでSSHサービスが起動していない

SSHサービスは初期状態だと起動していなかったです。
なので接続する前は毎回SSHサービスを起動させています。
面倒なので何か方法はないかと調べているとWindowsのタスクスケジューラと組み合わせて実現する方法がちらほら見受けられました

個人的にはUbuntuの設定だけで完結させたいという思いがあり、起動スクリプトか何か用意されていないのかと調べていたら下記記事を発見しました。

https://qiita.com/amenoyoya/items/41a2334cbc1facb87864

どうやら/etc/rc.localは動作しないようです。

その代替手段として、Ubuntu起動時にWindows側のファイルをマウントしているので、それを利用してスクリプトを実行する裏技があるみたいです。

スクリプトが書ければ色々と自分好みの環境が実現出来そうですね。

起動スクリプトを作成

Ubuntu上でスクリプトを作成していきます。
今回はSSHサービスを起動するだけの単純なスクリプトを作成します。

$ echo 'none none rc defaults 0 0' | sudo tee -a /etc/fstab
$ echo '#!/bin/bash' | sudo tee /sbin/mount.rc
$ echo 'sudo service ssh start' | sudo tee -a /sbin/mount.rc
$ sudo chmod +x /sbin/mount.rc

動作確認

Powershellを管理者権限で起動して一度WSLをシャットダウン⇒起動します。
PC再起動でも良いです。

# on Powershell(管理者)
ps> wsl --shutdown
ps> wsl -d Ubuntu

Ubuntuの状況を確認します。

# サービス確認用
$ sudo service ssh status

# IPアドレス確認
$ ip a

IPアドレスが確認出来たらSSH Clientツールで接続します。
Windows10はデフォルトでSSH接続可能ですが、私はRloginというツールを普段使用しています。

IPアドレスを指定して接続すれば普通に接続可能です。

ただ、起動のたびにIPアドレスが変わってしまうのが面倒です。
次回はIPアドレスの固定を同じスクリプト内でやってみようと思います。

-技術的な話