Windows10の1803バージョン以降では、オプション機能の追加によりWindows標準のOpenSSHサーバーを追加インストールできます。
設定にはWindows特有の仕様がありますが、動作じたいは標準的なOpenSSHサーバーであるためsshdの第一選択肢になります。
Windows特有の仕様
Windowsの規約に沿ったルールではありますが、Unixの感覚では理解しづらい以下のような特徴があります。
- デーモン起動は「サービス」の設定で行なう
- 自動起動設定のほか、sshd_config定変更後の再起動も可能
- 外部アクセスには「ファイアーウォール」の設定が必要
- ssd_configは、
%PROGRAMDATA%/ssh/ssd_config
にある- エクスプローラに
%PROGRAMDATA%
を入力すると該当フォルダが開く。一度起動すると関連ファイルを生成する
- エクスプローラに
- Adminグループに属すユーザー専用の
authorized_keys
ファイルが独特のPATHとして明示されているssd_config
末尾のMach Group administors
に従ってファイルを置くか、このconfigを無効にする必要がある
~/.ssh/authorized_keys
ファイルはSYSTEM
グループのread権限も必要- サービス起動した
sshd
が読める必要がある
- サービス起動した
メモ帳の問題
Windowsのconfig編集の標準的な手段が不明であるため、メモ帳で編集するとなると以下のような注意点があります。
sshd_config
の編集には管理者権限が必要- あらかじめメモ帳を右クリックして「管理者権限で実行」により起動する必要がある。その後、「開く」で編集
- メモ帳が拡張子
.txt
を自動付加する- Explorerがデフォルトで拡張子編集できないので、コマンドプロンプトの
mv
コマンドでファイル名変更する
- Explorerがデフォルトで拡張子編集できないので、コマンドプロンプトの
その他
サービス起動の場合ログを確認しづらいため、セットアップ段階ではPowerShellを「管理者権限で実行」のうえsshd -d
で起動するとエラーを特定しやすくなります。
ただし、サービス起動と実行権限が異なるため、authorized_keysのファイルパーミッション(SYSTEMユーザーのアクセス権)は最終構成と異なる点に注意が必要です。
認証方法はデフォルトではパスワード認証が有効になっています。鍵認証などの設定はUnix系と同様です。用途に合わせて適切に設定します。ポート番号も変更できます。
sshdを利用するとリモートデスクトップもトンネルできるため、クライアントしだいでVPNレスのリモート接続が可能になります。たとえばLinuxクライアントの
RemminaにはSSHトンネルの設定があり、接続時の追加手順なくSSH経路を利用できます。
SSHはUDPを転送しませんが、回線品質しだいでとくにロスなくスムーズに動作しています。
なお、この構成はLANアクセスの範囲であり、リモートアクセスするにはIPマスカレードなどのネットワーク機器設定は別途必要になるでしょう。この設定でlistenするポート(デフォルトは22番)にリクエストが到達する構成であればリモートアクセス可能になります。
Chuma Takahiro