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': そのようなファイルまたはディレクトリはありません」というエラーが発生する状況が発生しました。
私の状況は次のように解決されました:
- 手動で作成されたユーザーフォルダの名前変更/削除
- 実際のユーザーアカウントでログインする
- .ssh フォルダーと authorized_keys ファイルの作成/コピー
- .ssh フォルダと authorized_keys ファイルのアクセス権を確認する