Cygwin 上で実行されている Openssh で SSH キーベースの認証を構成するにはどうすればよいでしょうか?

Cygwin 上で実行されている Openssh で SSH キーベースの認証を構成するにはどうすればよいでしょうか?

Cygwin に openssh をインストールして設定し、正常に動作していますが、問題が 1 つあります。秘密鍵/公開鍵認証が使用できず、機能しません。

Linux と同じ手順でキーを追加しました~/.ssh/authorized_Keysが、キーが取得されませんでした。

また、確認しました/var/log/sshd.logが、空で、次の権限があります:

-rw-r--r-- 1 cyg_server    None      0 Aug 21 12:53 sshd.log

drwx------+ 1 Administrator None    0 Aug 21 12:57 .ssh

-rw-r--r--  1 Administrator None  395 Aug 21 12:57 authorized_hosts

何が足りないのでしょうか?

答え1

ファイル名が実際には の場合~/.ssh/authorized_Keys、ファイル名のKを小文字にする必要があります。

そうでない場合は、ssh -vシステムに対して実行してみてください。そうすれば、さらに詳しい情報が得られるはずです。

答え2

これは、HOME 環境変数が設定されていないことが原因である可能性があります。 の結果は何ですかecho $HOME? は実際にどのフル パスに~/.ssh/authorized_Keys解決されますか?

また、authorized_keys ファイルのファイル名はすべて小文字にする必要があると思います。

最後に、cygwinには奇妙な権限の問題があるようです。.sshディレクトリとその内容の権限を600(700ではなく)に設定してみてください。それでもうまくいかない場合は、Cygwin メーリング リストの古い投稿何らかの理由で、.ssh ディレクトリとその中のすべてのファイルの所有者は SYSTEM.SYSTEM である必要がありました。

それでもうまくいかない場合は、Windows のイベント ログを確認してください。デフォルトでは、cygwin の sshd は ではなく にログを記録すると思いますsshd.log(ただし、その場合にログ ファイルを作成する理由はわかりません)。

答え3

Windows 10 1909ログをチェックし、ファイルEvent Viewer -> Windows Logs -> Application -> sshd(Source column)の所有権と権限を以下のように設定することでこの問題を修正しました。home, .ssh and authorized_keys

chown Gowtham:none ~/
chmod g-w ~/
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

関連情報