2

基于问题Key based authenication with net-sftp in Ruby,我可以使用以下方法使用基于密钥的身份验证进行 SFTP:

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

但是我不能让它对需要密码的密钥起作用——我只是提示用户登录该主机。我是否遗漏了一些可以让我输入密钥密码的内容?还是我需要坚持ssh-agent这个?

4

1 回答 1

2

有一个passphrase选项:

加载私钥时使用的密码(默认为nil,无密码)

如果您未指定passphrase,则应该会要求您提供一个,除非您使用了以下non_interactive选项:

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

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

于 2016-06-07T06:21:43.113 回答