Windows Proで、画面を使う自動処理をさせながら、他の処理もさせたいという状況。
リモートデスクトップだと、1ユーザーしか入れないので、WSLのsshdと併用することにした。
sshdは、WSLのコンソールが走ってなくても動いてるので、やりたかったことは大体できてる。
悪くない環境。
WSLのインストール
Windows 10 用 Windows Subsystem for Linux のインストール ガイド
マイクロソフトアカウントでリモートデスクトップ
2要素認証を使っているWindowsのアカウントに、リモートデスクトップ接続をする。
サーバー側
- コントロールパネルからシステムを選択
- リモートアクセスの許可
- このコンピュータへのリモート接続を許可する
- リモートデスクトップユーザー
- 追加していないかも。。忘れた
- 複数のセッションを許可する
- リモートデスクトップ 複数セッションを許可する
- Windows Serverでないとダメっぽい
- 違うアカウントで接続すればよいか?
クライアント側
- リモートデスクトップクライアントを起動
- マイクロソフトアカウントでログオン
- MicrosoftAccount\xxx@live.jp で接続(MicrosoftAccount\はなくてもよいかも)
sshd on WSL
この設定でやったら、WSLのアカウントのパスワードでログオンできた。証明書でやりたいけど、プライベートネットワークに限定しているから、当面は良いか。
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
$ sudo vi /etc/ssh/sshd_config
(2カ所修正します)
$ diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org
56,57c56,57
< PasswordAuthentication yes
< PermitEmptyPasswords no
---
> PasswordAuthentication no
> #PermitEmptyPasswords no
- ssh permission denied
-
windows terminalでsshに接続しようとしたら、permission Denied で接続できない。WSLのコンソールからだとログオンできる。
ん、と思ってみてみたら、TerminalのPowerShellからssh叩いてた。
エラーを調べようと authlogを探したけど見当たらない。調べてみねば。 -
原因は、ユーザー名が 'hostname\username'として接続を行うため。
-
ssh -l username host とすることで、powershellからでも接続できる。
-
WSLに外部から接続できない問題
WSLでサービスを立ち上げても、他のノードから接続できない。
この問題の対策については、以下の記事にまとめてある。
auth.log (rsyslog)
authl.logを記録する方法がありました。
(高橋訳)
何らかの理由で、WSL上ではrsyslogサービスがデフォルトで実行されていません - 残念ながら、私はその理由を見つけることができませんでした。
以下のようにして起動することができます: service rsyslog start
サービスを起動すると/var/log/auth.logと/var/log/syslogファイルが表示されます。
スタートアップごとに実行したい場合は、いくつかのチュートリアルを見つけました。例: https://dev.to/ironfroggy/wsl-tips-starting-linux-background-services-on-windows-login-3o98
% sudo service rsyslog start
Windows logon時にサービスを自動起動する
まずは、パスワードなしでsudoできるコマンドを登録する
viで編集したいので、こちらを参考にvim.basicに変更
$ sudo update-alternatives --config editor
あとは、こちらの記事を参考に設定
WSLでサービスを自動起動する(勝手翻訳:WSL Tips: Starting Linux Background Services on Windows Login)
こちらは、まだ試していない
豚吐露@wiki Windows>tips>WSLにSSH接続したい
ファイル共有
ネットワーク資格情報の入力が毎回出る/アクセスできない時の対処 – Windows10