Используя OpenSSH для Windows, я пытаюсь настроить 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 -файлу