Chef infra 跑刀在地址部分给了我两个@
我不知道我的设置有什么问题:Chef infra 跑刀在地址部分给了我两个@,chef-infra,knife,Chef Infra,Knife,我不知道我的设置有什么问题: siegfried@ubuntu:~/chef-repo$ knife ssh -a ipaddress 'name:chefnode' 'uptime' WARNING: Failed to connect to -- Net::SSH::AuthenticationFailed: Authentication failed for user siegfried@192.168.1.73@192.168.1.73 failed f
siegfried@ubuntu:~/chef-repo$ knife ssh -a ipaddress 'name:chefnode' 'uptime'
WARNING: Failed to connect to -- Net::SSH::AuthenticationFailed: Authentication failed for user siegfried@192.168.1.73@192.168.1.73
failed for user siegfried@192.168.1.73@192.168.1.73
里面有一个双
@
。我完全不知道如何修复它。您的命令中有一个额外的搜索。你想要的是:
knife ssh 'name:chefnode' 'uptime'
我也遇到了同样的问题。在使用-VV选项重新运行我的knife命令后,我可以在调试输出中看到它无法加载我的ssh密钥
could not load public key file `c:/Users/Carolyn/.ssh/id_rsa': Net::SSH::Exception (public key at c:/Users/Carolyn/.ssh/id_rsa.pub is not valid)
原来我的私钥是由PuTTY创建的,格式不正确。键标题如下所示:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,DA9126F8AA3ED553
-----BEGIN RSA PRIVATE KEY-----
在我用ssh-keygen生成的密钥替换了我的私钥和公钥之后,刀子工作起来没有问题。现在,我的私钥头如下所示:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,DA9126F8AA3ED553
-----BEGIN RSA PRIVATE KEY-----
目前还不能100%确定发生了什么,但我相信双“@”只是一条打印消息(它实际上并没有试图连接到该主机)。双重标准来自:
# net-ssh-multi-1.2.0/lib/net/ssh/multi/server.rb
#
192 rescue Net::SSH::AuthenticationFailed => error
193 raise Net::SSH::AuthenticationFailed.new("#{error.message}@dude#{host}")
194 end
我非常巧妙地在这里添加了一个词“dude”,我们可以在我的输出中看到:
user@ubuntu:~/chef-repo$ knife ssh 'name:ep1' uptime
WARNING: Failed to connect to ep1.site.com -- Net::SSH::AuthenticationFailed: Authentication failed for user user@ep1.site.com@dudeep1.site.com
似乎是某种类型的错误,但不是我们的问题。我将继续调试,但可能是按照@Carolyn的建议
更新
事实上,双“@”完全是一个骗局。对我来说,解决方案只是用--ssh password指定密码(我还没有在远程端点上安装密钥)
刀子ssh'名称:ep1'正常运行时间--ssh密码
所以可能是钥匙或密码的问题-VV是你的朋友。我也犯了同样的错误;我所做的只是将
-P
添加到我正在运行的刀ssh
命令中<代码>ssh默认情况下,如果未明确告知使用密码验证,则尝试使用密钥验证
错误运行命令的示例:ssh“角色:”“正常运行时间”-x
固定运行命令示例:
shove ssh”角色:““正常运行时间”-x-p
要解决此问题,请首先检查客户端节点并检查是否提供了根访问权限。
检查文件/etc/ssh/sshd_config文件并将permitrotaccess更改为Yes。
停止ssh,然后重新启动
或者使用--sudo以及命令中的任何用户名和密码删除CHEF中所有不存在的节点(不活动,CHEF无法访问这些节点等),这样可以解决您的问题。确实如此。将工作站的公钥添加到目标节点的根目录中。ssh/authorized_keys此问题通常是由于没有将正确的私钥PEM文件添加到本地ssh代理中造成的。做一些类似于: $ssh add尝试使用以下命令:
knife ssh 'name:node1.example.com' -P "redhat" chef-client
这里
node1.example.com
是目标机器-P
根用户的密码。对我来说,解决方案是确保我的本地
同时拥有bastion主机和目标节点的密钥。一旦出现这种情况,像这样的命令就起作用了。换言之:ssh代理
ssh-agent-l
的输出是
2048 SHA256:yyyyy/Users/me/.ssh/id\u rsa(rsa)
2048 SHA256:zzzzz/Users/me/.ssh/内部vpc专用rsa密钥(rsa)
当我运行如下命令时:
刀ssh“$CHEF\u搜索\u查询”交互式\
--config.rb\
--ssh网关$JUMPBOX\u IP\
--ssh用户$ssh\u用户\
--属性“cloud.public\u ipv4”
然后与目标主机建立N个交互式ssh会话只需为客户端节点获取正确的登录凭据即可。我通过添加ssh-i“name:*”no.来修复此问题。如果我不声明-a ipaddress。。它将使用fqdn,我没有应用任何dns。你仍然会得到这样的信息:“对于用户siegfried@ubuntu.gateway.2wire.net@net“如果您运行‘刀子显示节点chefnode-a ipaddress’,会显示什么?”?siegfried@ubuntu:~/chef repo$knife node show chefnode-a ipaddress chefnode:ipaddress:192.168.1.73我不知道为什么会有两个ip地址。您的系统上是否有某种类型的ssh别名配置,可能会添加额外的信息?谢谢,这确实解决了此问题,但如果您有办法不以明文形式写入密码,请共享相同的问题。。我用的是a-I键。。。但该文件不存在,这会产生相同的错误。在尝试这个之前。。。是否可以尝试正常的ssh-i密钥user@host? 如果失败了,这个奇怪的输出今天把我送进了兔子洞,哈哈。。。原来我在
刀[:identity\u文件]
值中有一个输入错误,最好向Chef Lol发送一份bug报告/PR。。。两年过去了,这仍然让人们陷入兔子洞(比如我)…这是我的答案。键入ssh add是不够的。我必须指定所有SSH连接到的机器的所有密钥。一旦他们都装进钥匙链,双user@foo@福事消失了,回答得很好;仍然必须输入密码,但至少它不会保留在历史记录中(而是在enteryoupassword:命令中)。仍然不确定为什么会存在这个问题,因为我可以轻松地将ssh连接到所有框中,并正确地设置chef服务器(或者我是这么认为的)。谢谢