Windows 10 1809とOpenSSH。

Cygwin を使って、Windows 上での sshd の動作を見ていたんですが、コンソールから whereis したら、
$ whereis sshd
sshd: /usr/sbin/sshd.exe /mnt/c/WINDOWS/System32/OpenSSH/sshd.exe /mnt/c/Program Files/Git/usr/bin/sshd.exe /usr/share/man/man8/sshd.8.gz
などと出てきてびっくり。
Git はともかく、自分では Cygwin 以外に OpenSSH をインストールした覚えはないのに、なぜか \Windows\System32\OpenSSH なんていう場所にあります。なにそれという感じです。

調べてみると、Installation of OpenSSH For Windows Server 2019 and Windows 10というページが見つかりました。
Windows 10 1809 と Windows Server 2019 ではインストール可能な機能として構成されるようになった、みたいなことが書いてあります。

SSHクライアントの方は 1809 でインストールされているようですが、SSHサーバのほうは明示的にインストールが必要なようです。
「アプリと機能」の中にある「オプション機能の管理」に進みます。

「機能の追加」をクリックします。
すると「OpenSSHサーバー」が出てきます。

インストールすると、上記のディレクトリにサーバが追加されました。
"sshd.exe" "sftp-service.exe" "sshd_config_default" という3つのファイルのようです。

…これ、もしかしてcygwinいらなくなるんじゃね?という思いがふつふつと。
RLogin とか ConEmu を使って自分の PC に SSH ログインしてシェルをタイリング(タブではなくて画面分割)できるコンソールで作業できるのでは。そもそも Cygwin の sshd を使ってログインしてもシェルとして Nyagos とかは使えなかったので、これは試してみる価値があるかもしれません。

ということで sshd_config_default を見てみます。
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
どうやら c:\ProgramData\ssh 以下に鍵ファイルや設定ファイルがあるようです。そこを開いてみると、
いつインストールされたのかわかりませんが、すでに鍵ファイルなどがありました。しかも sshd_config ファイルまであります。
鍵の暗号方式にはいくつかの種類がありますが、RSA が使えるようになったので DSA はもはや不要、RSAでも2048bit以下はダメで、使うなら4096bit以上、それよりは ECDSA か、さらに強度の高い Ed25519 が推奨、ということになっています。
外部に晒す環境であれば、最低でも "PasswordAuthentication" は "no" にしなくてはいけませんが、まずは実験なのでデフォルトのままにしておきます。使えると分かれば "no" にします。

まずは Windows の「サービス」から Cygwin の sshd を起動しないようにします。うちの場合には Cygwin xinetd を停止して無効にしておきます。

次に、Initial Configuration of SSH Serverにあるように、PowerShell を管理者モードで起動して sshd をサービスとして登録します。
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. 
Get-NetFirewallRule -Name *ssh*
# There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled

コマンドプロンプトアイコンを右クリックすると「管理者として実行」というメニューが出るので、管理者モードのコマンドプロンプトを開いて PowerShell を起動していますが、ちゃんと登録できたようです。「サービス」を開いて確認すると登録されています。

どうやらインストールは終わったようなので、次は接続編です。

0 件のコメント:

コメントを投稿

AstroNvimでtelescope.nvimがエラーを吐いたとき。

Windowsの環境でAstroNvimをインストールして、Find Fileしたらtelescopeがエラーを吐いてきました。 メッセージは、 Failed to run `config` for telescope.nvim ...a/lazy/telescope.nvim/...