Home > Archives > 11 February 2021

11 February 2021

WSL2 の sshd 使う

MSYS2 から WSL2 への移行で放置してた sshd 周りの設定をした.面倒なのは,Win の起動時に sshd サーバを起動するスクリプトを叩かないといけない(Linux 側のサービス自動起動が効かない)ことと,Win 側に来た接続を WSL2 側に転送するフォワーディングの設定を入れないといけないこと.

とりあえず,フォワーディング先の IP は Linux 側じゃないと分からないので,Linux 側で IP を取って Win 側の 2002 から Linux の 22 へのフォワーディングを netsh で入れるスクリプト /root/sshd_port_forwarding.sh を用意:

#!/bin/bash
IP=$(ip a show eth0 | grep 'inet ' | sed -e 's/.*inet //;s|/.*||')
netsh.exe interface portproxy delete v4tov4 listenport=2002
netsh.exe interface portproxy add    v4tov4 listenport=2002 connectport=22 connectaddress=$IP

んで,次にこのスクリプトを root 権限で実行しつつ sshd の起動をするためのバッチファイルを Win 側に用意:

wsl -u root -- service ssh restart
wsl -u root --exec /bin/bash /root/sshd_port_forwarding.sh 

あとはこのバッチファイルをスタートアップ時にログイン無しで管理者権限で動かすタスクを Win のタスクマネージャで作れば設定完了.

閑話休題.

再起動のたびに /etc/hosts が書き換えられてる? まえに書いてたエントリが消えてたり,Win 側のに書いてたエントリが入ってたり.ちょっと挙動が分かってない.調べるか.

Home > Archives > 11 February 2021

Search
Feeds

Page Top