如何使用 sftp 在同一行上使用密码登录?

如何使用 sftp 在同一行上使用密码登录?

是否有一个选项可以将密码也放在 sftp 上?

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

像这样

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

答案1

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

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

此外,我不认为使用 sftp 可以实现这一点。它旨在用于安全传输。如果你真的必须做这样的事情,而你别无选择,那么你可能需要考虑使用预计

答案2

正如其他人提到的,命令行密码应该是最后手段。

但是如果没有其他办法,可以使用 ssh pass

sshpass -p <password> sftp user@host

答案3

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

答案4

对于不关心密码是否可以在命令行命令中看到的搜索者:

sftp userid:password@remoteHost是如何在连接命令中包含密码sftp

更新:这被证明是错误的...见评论

相关内容