Windows 10 1809とOpenSSH。その2

OpenSSH for Windowsのインストールが終わり、サーバが起動しているので早速ログインしてみます。ちなみにインストール編はこちら
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\kats> ssh kats@localhost
Windowsのパスワードでちゃんと入れました。なんかいきなり管理者モードになったコマンドプロンプトが出てきましたけど。

次に鍵とパスフレーズで入れるかどうか試してみます。
まずは「サービス」メニューから "OpenSSH" を停止して、sshd_config をいじります。
# To disable tunneled clear text passwords, change to no here!
-#PasswordAuthentication yes
+PasswordAuthentication no
 #PermitEmptyPasswords no
としてパスワードを禁止します。このファイルは管理者モードでないと編集できないので、一旦デスクトップなどにコピーしてそれを編集し、コピーで戻せばよいでしょう。
変更し終えたら「サービス」から "OpenSSH" を起動して接続してみます。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\kats> ssh kats@localhost
kats@localhost: Permission denied (publickey,keyboard-interactive).
いきなり拒否されました。あふん。

サービスを一旦停止して sshd をデバッグモードで起動します。
接続してみるとエラーで弾かれますが、ログをみるとどうやら authorized_key が見つからないから追い返しとくね、みたいな感じです。

ということで、Windows 用に鍵ファイルを生成してみました。
$ ssh-keygen -t ed25519
現時点で最強といわれる Ed25519 を指定します。
ちなみに鍵ファイルの置き場所は %USERPROFILE%\.ssh でいいようです。

生成された鍵ファイルのうち、id_ed25519.pub の内容をそのまま authorized_keys ファイルにコピペします。まだ存在していなければ、ファイルを丸ごとコピペして名前を変えればOKです。

これでパスフレーズの入力プロンプトが出てきて、接続できました。

ただ、authorized_keys のユーザ名はログインしたいシステムのユーザ名と一致している必要があるようで、もしも Windows と UNIX のユーザ名が異なっているとログインできません。とりあえず RLogin などを使いたいだけならばそれでいいのかもしれませんが、UNIX系と共通で鍵ファイルを使いたいときには困ったことになります。
ともあれ、Windows上で鍵ファイルを生成してログインはできるようです。

そこからもう一歩進んで、シェルを変更してみます。

Configuring the default shell for OpenSSH in Windowsを見ると、レジストリに登録することでシェルを変更することができるようです。なのでこれを Nyagos に変更してみます。
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
となっているのを、
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Apps\nyagos\nyagos.exe" -PropertyType String -Force
にしてみます。

コンソールをキャプチャしてもわからないので貼りませんが、結論から言うと問題なくできました。これで RLogin で Nyagos が使えるようになりそうです。一応タスクマネージャーでは以下のようになっていました。
Naygos と ssh がコンソールの下にあるのがわかると思います。

ここまでできたらあともう一歩です。
RLogin を起動して、サーバエントリを追加します。
これで接続すると…

リサイズなどでモニョモニョっと動いたりしますが、ちゃんとこれで動いています。特に動作がのろいということもないようです。
ただ、プロンプトの色が赤いことから分かる通り管理者モードになっています。これは多分 sshd_config でなんとかしないといけないんだと思いますが、これはまあそのうち。

0 件のコメント:

コメントを投稿

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

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