Как можно неинтерактивно использовать SFTP для загрузки файла с удаленного хоста?

Похоже, вы неправильно используете Ansible Vault.

В документации Ansible Vault указано:

Ansible Vault is a feature of ansible that allows you to keep sensitive data such as passwords or keys in encrypted files, rather than as plaintext in playbooks or roles.

Вы не можете шифровать файлы непосредственно на удаленном хосте.

Что вы можете сделать, так это зашифровать файл на локальном хосте, а затем скопировать зашифрованный файл с помощью модуля copyна удаленный хост. По умолчанию модуль copyрасшифровывает файл, но вы можете перезаписать его, указав decrypt: no. Для получения дополнительной информации см. документацию по модулю копирования .

0
26.04.2021, 20:20
1 ответ

ssh и его двоюродный брат sftp, потому что они написаны для обеспечения безопасности (в конце концов, это прямо в названии )по замыслу не разрешать ввод паролей в командной строке, так как это очень просто способ утечки ваших паролей в файл журнала с открытым текстом, такой как история оболочки.

Если вы хотите включить безголовую, но все же аутентифицированную передачу файлов, создайте пару открытый/закрытый ключ с ssh-keygen, но укажите пустую фразу-пароль. Затем вы можете использовать эту пару ключей для аутентификации для вашей транзакции sftpпосле того, как открытый ключ будет установлен на удаленном хосте.

Если вы действительно хотите использовать sftp, вам также придется отправить команды на sftp, которые вы обычно вводите в интерактивной подсказке. Было бы проще использоватьscp:

$ scp username@remotehost.example.com /path/to/my/file./file
0
28.04.2021, 22:50

Теги

Похожие вопросы