OPENSSH がユーザー ディレクトリではなく C:\Windows\.ssh\authorized_keys を開こうとするのはなぜですか?

OPENSSH がユーザー ディレクトリではなく C:\Windows\.ssh\authorized_keys を開こうとするのはなぜですか?

Windows 用の OpenSSH を使用して、公開キーを使用して SFTP を設定しようとしています。

エラー ログには次のように表示されます:

12080 2020-03-20 11:51:02.136 debug3: Failed to open file:C:/Windows/.ssh/authorized_keys error:2
12080 2020-03-20 11:51:02.136 debug1: Could not open authorized keys 'C:\\Windows\\.ssh/authorized_keys': No such file or directory

sshd_config では、ユーザーを次のように設定しました。

Match User testuser
    ChrootDirectory E:\Integration\SFTP\TestUser 
    PasswordAuthentication no
    PubkeyAuthentication yes

したがって、ソフトウェアはキー ファイルのために E:\Integration\SFTP\TestUser\.ssh\authorized_keys に移動すべきではないでしょうか?

次に、テストとして、ユーザーの authorized_key を c:\Windows..sh ディレクトリにコピーしたところ、次のエラーが発生しました。

debug1: trying public key file C:\\Users\\testuser\\.ssh/authorized_keys
debug3: Failed to open file:C:/Users/testuser/.ssh/authorized_keys error:2
debug1: Could not open authorized keys 'C:\\Users\\testuser\\.ssh/authorized_keys': No such file or directory

上記のディレクトリにキーを置くと、機能しました。つまり、ChrootDirectory は、送受信されたファイルのソースに対してのみ機能し、.ssh ファイルに対しては機能しないということですか? 次は C:\Windows から削除してみます...

C:\Windows.ssh\authorized_keys ファイルを削除しましたが、まだ動作します。ユーザーが見つからない場合、バックアップ ソースとして C:\Windows ディレクトリに移動している可能性があります。

答え1

実際のユーザー アカウントでログインするのではなく、手動でユーザー フォルダーを作成したときに、「C:\Windows\.ssh/authorized_keys': そのようなファイルまたはディレクトリはありません」というエラーが発生する状況が発生しました。

私の状況は次のように解決されました:

  1. 手動で作成されたユーザーフォルダの名前変更/削除
  2. 実際のユーザーアカウントでログインする
  3. .ssh フォルダーと authorized_keys ファイルの作成/コピー
  4. .ssh フォルダと authorized_keys ファイルのアクセス権を確認する

関連情報