Ответы:
Как правило, включение пароля в командную строку считается угрозой безопасности, поскольку оно будет показано любому, кто может запустить ps / top, и может быть сохранено в истории вашей оболочки.
Было бы гораздо лучше установить аутентификацию на основе ключей, если вы можете.
Кроме того, я не верю, что это будет возможно с sftp. Он предназначен для использования для безопасных переводов. Если вам действительно нужно было сделать что-то подобное, и у вас нет другого выбора, то вам, вероятно, стоит задуматься об автоматизации с ожиданием .
Как уже упоминалось, пароль командной строки должен быть последним средством.
Однако, если больше ничего не возможно; можно пройти ssh pass
sshpass -p <password> sftp user@host
brew search sshpass
- «Мы не будем добавлять sshpass, потому что для начинающих пользователей SSH слишком легко разрушить безопасность SSH».
Просто используйте perl, ruby или python для написания сценария того, что вы пытаетесь сделать. В случае ruby это просто (взято из документации по net-sftp API):
require 'net/sftp'
Net::SFTP.start('host', 'username', :password => 'password') do |sftp|
# upload a file or directory to the remote host
sftp.upload!("/path/to/local", "/path/to/remote")
end
Для получения дополнительной информации http://net-ssh.rubyforge.org/sftp/v2/api/index.html
Как и в других ответах, используйте аутентификацию с открытым ключом. Есть замечательная, хотя и немного устаревшая серия IBM developerWorks, в которой должно быть объяснено все, что вы хотите о ней знать, а также некоторые полезные дополнительные инструменты, такие как связка ключей.
Для искателей, которым все равно, что пароль можно увидеть в командной строке:
sftp userid:password@remoteHost
как включить пароль в команду sftp
подключения.
ОБНОВЛЕНИЕ: это оказалось неправильно ... см. Комментарии
Я подозреваю, что ответов столько же, сколько и FTP-клиентов. SFTP-сервер не должен принимать информацию аутентификации до тех пор, пока не будет установлено шифрование, чтобы защитить пользователя и пароль.
Я полагаю, что клиент FileZilla позволит передавать имя пользователя и пароль в командной строке .. см. Документацию здесь . Учитывая репутацию проекта FileZilla, я ожидаю, что он будет работать безопасно.