-1

我处于具有身份验证令牌的环境中,因此通常不需要 SSH 密码。我的 serverspec 测试总是要求我输入密码。有没有办法防止这种情况?

无需密码:

$ ssh atlspf01
newatson@atlspf01:~$

然而,在 serverspec

$ rake spec
Password:

spec_helper.rb 中的相关代码

require 'serverspec'
require 'net/ssh'

set :backend, :ssh
...
set :host, ENV['TARGET_HOST']
set :ssh_options, :user => ENV['USERNAME']

更新:问题是 net::ssh 不支持 Kerberos 身份验证(gssapi-with-mic)。使用 ssh::ssh::kerberos 或使用 ssh 密钥。

4

1 回答 1

1

在您的配置中,您仅将有关用户的信息传递给ssh_options

假设您的目标主机存储在环境变量中TARGET_HOST,用户名存储在USERNAME中,您应该执行以下操作:

set :ssh_options, Net::SSH::Config.for(ENV['TARGET_HOST']).merge(user: ENV['USERNAME'])

于 2015-06-15T15:52:47.613 回答