你怎么能用sftp做一个class轮在同一行上用密码login?

有没有一个选项把密码放在线上以及SFTP

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ 

喜欢这个

 linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 

通常在命令行中包含一个密码被认为是一个安全风险,因为它会显示给其他任何可以运行ps / top的人,并且可以保存在shell的历史logging中。

如果可以的话,设置基于密钥的authentication将是一个更好的主意。

另外,我不相信这将是可能的与SFTP。 这意味着用于安全传输。 如果你真的必须这样做,你没有其他select,那么你可能需要考虑自动化与期望 。

正如其他人所说,一个命令行密码应该是最后的手段。

但是,如果没有别的可能, 人们可以去ssh通行证

 sshpass -p <password> sftp user@host 

不要那样做 – 为自动login设置SSH公钥authentication。

正如其他答案所述,使用公钥authentication。 IBM developerWorks系列虽然有点过时,但应该解释一切您想知道的信息,以及一些有用的补充工具,如钥匙串。

只要使用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

我怀疑有这么多的FTP客户端的答案。 SFTP服务器在encryptionbuild立之前不应该接受authentication信息,以保护用户和密码。

我相信FileZilla客户端将允许用户和密码的命令行传递。请参阅这里的文档。 鉴于FileZilla项目的声誉,我希望它安全地运作。