Ruby 中使用 net-sftp 进行基于密码密钥的身份验证

问题描述 投票:0回答:1

基于问题Ruby中使用net-sftp进行基于密钥的身份验证,我可以使用以下命令进行基于密钥的身份验证的SFTP:

Net::SFTP.start(host, "user", keys:['~/.ssh/my_key']) do |sftp|
   sftp.upload! "/local/file.tgz", "/remote/file.tgz"
end

但是我无法让它适用于需要密码的密钥——我只是收到提示用户在该主机上登录。我是否遗漏了一些可以让我输入密钥密码的内容?或者我需要坚持使用

ssh-agent
来实现这一点吗?

ruby ssh sftp net-ssh net-sftp
1个回答
3
投票

passphrase
选项

加载私钥时使用的密码(默认 是

nil
,没有密码)

如果您没有指定

passphrase
,系统会要求您提供一个,除非您使用了
non_interactive
选项:

如果您的应用程序是非交互式的并且更喜欢,则设置为 true 认证失败 vs 提示密码

非交互式应用程序应将其设置为 true 更喜欢失败密码/等身份验证方法而不是询问密码

© www.soinside.com 2019 - 2024. All rights reserved.