Мне нужно программно загружать и скачивать файлы через sftp-соединение на удаленный сервер. Мое имя пользователя имеет разрешение на доступ к определенному удаленному каталогу через пароль, но не к каталогу .ssh. На самом деле я вообще не могу подключиться по ssh к удаленному серверу. Я получаю ответ:
This service allows sftp connections only.
Connection to www.example.com closed.
Но для этого вопроса, предположим, у меня просто нет разрешения скопировать мой закрытый ключ в удаленный каталог .ssh. Поэтому мой вопрос:
Как мне настроить локальный/.ssh/configфайл, чтобы избежать запроса на аутентификацию по паролю?
Очевидно, я не могу скопировать вновь созданную пару ключей в удаленный каталог, как предлагается.здесь, по вышеупомянутым причинам. Но у меня должен быть где-то закрытый ключ на моей локальной машине для ssh-соединения, верно? Разве я не могу просто передать каталог этого файла в опцию IdentityFile?
решение1
Попросите администратора этого удаленного сервера включить для вас аутентификацию с открытым ключом. Поскольку аутентификация с открытым ключом должна поддерживаться как на стороне сервера, так и на стороне клиента, вы не можете принудительно включить ее только с клиента.
Для доступа по сценариюsshpassвозможное решение. Это позволяет вам хранить ваш пароль в файле для автоматизации входа в систему, когда вы не можете использовать аутентификацию на основе ключей.
https://www.redhat.com/sysadmin/ssh-automation-sshpassявляется полезным ресурсом для этого.