はじめに
Windows 11にOpenSSHサーバをインストールしました。
意外に一筋縄ではいかなかったので、ここに記録を残します。
環境
- サーバ側
- Windows 11 21H2 Build 22000.856
- OpenSSH_for_Windows_8.1p1, LibraSSL 3.0.2
- クライアント側
- Ubuntu 22.04.1 LTS
- OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
Windows 11に OpenSSH サーバをインストールする
GUIからやると、いつのまにかメニューが行方不明になるので、PowerShell を使います。
管理者権限でPowerShellを起動します。
名前を確認します。
Get-WindowsCapability -Online | where -Property Name -ILike "OpenSSH*"
インストールします。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
サービスを有効にする
自動起動するようにします。
Set-Service -Name sshd -StartupType Automatic
起動します。
Start-Service -Name sshd
とりあえずこれで繋がるはず、、、でした。
トラブルメモ
[トラブル] サーバ側のログが出ない
SyslogFacility
を LOCAL0
に変更してsshdを再起動します。
sshd_config
ファイルは、$env:programdata\ssh
にあります。
[トラブル] 接続できない
[原因] Windows側ファイアウォールが開いていない
SSH (TCP 22番)を通すようにします。
[原因] ホストキーがない
生成します。
sshd -A
[トラブル] Too many authentication failures と言われて接続できない
[原因] ssh_agent を使用している
既定の認証ファイルのみを使うようにしてみます。
ssh -o IdentitiesOnly=yes ホスト名
[トラブル] 公開鍵で認証できない
[原因] ユーザがAdministratorsグループに属している
いつもの authorized_keys
ファイルを $env:programdata\ssh
へ置きます。ファイル名は administrators_authorized_keys
にします。
[原因] administrators_authorized_keys
ファイルのACLが不正
ファイルのACLを、継承を無効にし、Administrators:フルコントロール、SYSTEM:フルコントロール のみ にします。
icacls.exe .\administrators_authorized_keys /inheritance:r /grant Administrators:F /grant SYSTEM:F
感想
LinuxからWindowsへsshできるようになって、tmux の中で使えるようになりました。快適〜〜。
次は、本命 Visual Studio Code Server を動かします。