私のクライアントは ecdsa 521 キーのみをサポートしているため、Windows 10 SSH サーバーで ecdsa p521 ホスト キーを生成しようとしています。そのため、次の手順を使用しましたが、サーバーから p521 ホスト キーをロードできませんでした。
1.管理者ユーザーとしてPower Shellから以下を実行します。
C:\Windows\System32\OpenSSH\ssh-keygen.exe -C system -b 521 -o -t ecdsa -f C:\ProgramData\ssh\ssh_host_ecdsa_p521_key
sshd_configを変更して追加する
HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_p521_key KexAlgorithms ecdh-sha2-nistp521 HostKeyAlgorithms ecdsa-sha2-nistp521
Power Shell から Restart-Service sshd を実行します。
Restart-Service : Failed to start service 'OpenSSH SSH Server (sshd)'. At line:1 char:1 Restart-Service sshd ~~~~~~~~~~~~~~~~~~~~ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service], ServiceCommandException FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.RestartServiceCommand
イベントビューアからログを確認する
sshd: error: Could not load host key: __PROGRAMDATA__/ssh/ssh_host_ecdsa_p521_key
懸念事項: デフォルトのホスト キー ssh_host_ecdsa_key を確認すると、ユーザー名は nt authorized\system@domain_name であることがわかりましたが、上記で生成したキーは user@domain_name です。これが根本的な原因であるかどうかはわかりません。
答え1
回避策は既存のキーファイルを利用することです
- Windowsの検索バーから「実行」>「%programdata%」と入力します。
- sshをクリックすると、すべてのキーファイルとssh設定ファイルが表示されます。
- 上記のパスをコピーします(C:\ProgramData\ssh である必要があります。そうでない場合は、次の手順で C:\ProgramData\ssh を以下のパスに置き換えます)。
- 管理者としてPower Shellを開く
- C:\Windows\System32\OpenSSH\ssh-keygen.exe -b 521 -o -t ecdsa -f C:\ProgramData\ssh\ssh_host_ecdsa_key を使用します
- sshd サービスを再起動する