
公開鍵認証を使用して SSH 経由で Windows に接続しようとしています。しかし、どうやら機能していないようです。
私がやったことは以下の通りです。
Windows に SSH をインストールして有効化しました。
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
公開鍵ファイルを生成し、SSH からリモート マシンに送信しました。
ssh-keygen
SSH設定ファイル「C:\ProgramData\ssh\sshd_config」に以下の行を変更/追加しました。
PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes
PasswordAuthentication no
設定変更を適用するために、ssh サーバーを再起動しました。
net stop sshd ; net start sshd
リモートマシン(Windows、PowerShell)からWindowsマシンにSSH接続しようとしました
ssh -i C:\_sync_\id_rsa [email protected]
そして失敗しました。
> ssh -i C:\_sync_\id_rsa [email protected]
[email protected]: Permission denied (publickey,keyboard-interactive).
では、この SSH 公開鍵認証の問題をどのように解決すればよいのでしょうか?
答え1
WindowsにSSH接続するのは時間の無駄です。彼らのドキュメントhttps://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement時代遅れであるhttps://github.com/MicrosoftDocs/windowsserverdocs/issues/4598残念ながらもう動作しません。
Windows 10 を使用している場合は、Windows 10 で WSL Linux を使用することをお勧めします。これは基本的に Windows 上の Linux マシンですが、SSH 機能も利用できます。WSL SSH は、Linux マシンと同様に完璧に機能します。
答え2
authorized_keys
Windows では、標準ユーザーか管理者ユーザーかによって必要なファイルが異なっているようです。
2024年4月15日現在、OpenSSH for Windowsについて言及されている。ドキュメンテーション(例えば行政ユーザー):
公開鍵 (.ssh\id_ed25519.pub) の内容は、サーバーの C:\ProgramData\ssh\ にある administrators_authorized_keys というテキスト ファイルに配置する必要があります。