Как вы можете сделать один вкладыш с sftp для входа с паролем на той же строке?


17

Есть ли возможность поставить пароль на линию также с помощью sftp?

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ 

Как это

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 

Ответы:


13

Как правило, включение пароля в командную строку считается угрозой безопасности, поскольку оно будет показано любому, кто может запустить ps / top, и может быть сохранено в истории вашей оболочки.

Было бы гораздо лучше установить аутентификацию на основе ключей, если вы можете.

Кроме того, я не верю, что это будет возможно с sftp. Он предназначен для использования для безопасных переводов. Если вам действительно нужно было сделать что-то подобное, и у вас нет другого выбора, то вам, вероятно, стоит задуматься об автоматизации с ожиданием .


Интересный момент!
Даниил

Было бы гораздо лучше установить аутентификацию на основе ключей, если вы можете. Это имеет смысл.
Чистый бегун


4
Не могу понять, почему люди выдвигают ответ, который не дает решения.
итопоп

34

Как уже упоминалось, пароль командной строки должен быть последним средством.

Однако, если больше ничего не возможно; можно пройти ssh pass

sshpass -p <password> sftp user@host

2
Это должно быть массово поддержано. Это действительно полезно иметь sshpass. Некоторые провайдеры не позволяют создавать папку .ssh, и scp также запрещен.
NetSquirrel

2
хорошо, что у некоторых инструментов есть ваша спина: brew search sshpass- «Мы не будем добавлять sshpass, потому что для начинающих пользователей SSH слишком легко разрушить безопасность SSH».
оливер

4
Это должно быть принятым решением. ОП спросила, как сделать эту конкретную вещь, а не для совета по безопасности (хотя и с благими намерениями и правильно).
EBR

6

Не делайте этого - настройте аутентификацию с открытым ключом SSH для автоматического входа.


Может ли sftp сделать то же самое, что и scp?
Даниил

1
@Daniel, sftp и scp построены на SSH, что позволяет проводить аутентификацию на основе ключей.
Зоредаче

5

Просто используйте 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


paramiko - чистый питон (без лишних библиотек), и он работает очень хорошо
qwertzguy

3

Как и в других ответах, используйте аутентификацию с открытым ключом. Есть замечательная, хотя и немного устаревшая серия IBM developerWorks, в которой должно быть объяснено все, что вы хотите о ней знать, а также некоторые полезные дополнительные инструменты, такие как связка ключей.


2

Для искателей, которым все равно, что пароль можно увидеть в командной строке:

sftp userid:password@remoteHostкак включить пароль в команду sftpподключения.

ОБНОВЛЕНИЕ: это оказалось неправильно ... см. Комментарии


OpenSSH v5.3p1 и v4.3p2, оба в Red Hat Enterprise ...
ashnazg

1
Это оказалось неверным ... этот метод, похоже, работал для меня, потому что PHP и его расширение ssh2 ранее использовались в моем коде для выполнения автономной аутентификации ... а команда sftp запускалась позже. Именно в этой более поздней части синтаксис оказался успешным.
ashnazg

1
Не удалось разрешить имя хоста пользователя: такой хост не известен. Он рассматривает ":" в имени пользователя, чего нет в FileZilla CLI
P Satish Patro

1

Я подозреваю, что ответов столько же, сколько и FTP-клиентов. SFTP-сервер не должен принимать информацию аутентификации до тех пор, пока не будет установлено шифрование, чтобы защитить пользователя и пароль.

Я полагаю, что клиент FileZilla позволит передавать имя пользователя и пароль в командной строке .. см. Документацию здесь . Учитывая репутацию проекта FileZilla, я ожидаю, что он будет работать безопасно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.