是否有一个选项可以将密码也放在 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
答案4
对于不关心密码是否可以在命令行命令中看到的搜索者:
sftp userid:password@remoteHost
是如何在连接命令中包含密码sftp
。
更新:这被证明是错误的...见评论