我不知道我的安排有什么问题:
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
其中有一个@
。我完全不知道如何解决它。
答案 0 :(得分:4)
尚未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的建议https://stackoverflow.com/a/22439127/851145有关。
<强>更新强>
确实是双重的&#34; @&#34;是一个完整的红鲱鱼。对我来说,解决方案是简单地使用--ssh-password指定密码(我没有在远程端点上安装密钥)。
刀ssh&#39;名称:ep1&#39;正常运行时间 - 密码密码因此可能存在密钥或密码问题。 -VV是你的朋友。
答案 1 :(得分:2)
要解决此问题,请首先检查客户端节点并检查是否提供了root访问权限。 检查文件/ etc / ssh / sshd_config文件并将permitrootaccess更改为Yes。 停止ssh并重新开始
或者在命令
中使用--sudo以及任何用户名和密码答案 2 :(得分:1)
我有同样的错误;我所做的就是解决它只是添加-P
作为我正在运行的knife ssh
命令的一部分。 knife ssh
默认情况下尝试使用密钥身份验证,如果未明确告知密码身份验证使用密码身份验证。
错误运行命令示例:knife ssh "role:*" "uptime" -x <user>
固定运行命令示例:knife ssh "role:*" "uptime" -x <user> -P
答案 3 :(得分:1)
此问题通常是由于未将正确的私钥PEM文件添加到本地ssh代理程序引起的。做类似的事情:
$ ssh-add
答案 4 :(得分:1)
尝试使用此命令:
knife ssh 'name:node1.example.com' -P "redhat" chef-client
此处node1.example.com
是目标计算机。 -P
root用户的密码。
答案 5 :(得分:0)
您的命令中有额外的搜索。你想要的是:
knife ssh 'name:chefnode' 'uptime'
答案 6 :(得分:0)
我遇到了同样的问题。使用选项-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
在使用ssh-keygen生成的密钥替换我的私钥和公钥后,刀没有问题。现在我的私钥标题如下所示:
-----BEGIN RSA PRIVATE KEY-----
答案 7 :(得分:0)
删除你家中的所有节点,这些节目真的不存在(不活跃,厨师无法联系到它们等等),它会解决你的问题。真。
答案 8 :(得分:0)
将工作站的公钥添加到目标节点的根目录.ssh / authorized_keys
答案 9 :(得分:0)
对我来说,解决方案是确保我的本地ssh-agent
拥有堡垒主机和目标节点的两个键。一旦出现这种情况,这样的命令就起作用了。换句话说:
鉴于我正在使用堡垒主机
我有2个不同的ssh密钥对; 1从工作站进入堡垒主机,另一个从堡垒主机进入目标节点
我工作站的ssh-agent -l
输出
2048 SHA256:yyyyy /Users/me/.ssh/id_rsa (RSA)
2048 SHA256:zzzzz /Users/me/.ssh/internal-vpc-private-rsa-key (RSA)
当我运行如下命令时:
knife ssh "$CHEF_SEARCH_QUERY" interactive \
--config knife.rb \
--ssh-gateway $JUMPBOX_IP \
--ssh-user $SSH_USER \
--attribute 'cloud.public_ipv4'
然后与目标主机建立N个交互式ssh会话
答案 10 :(得分:0)
为您的客户端节点获取正确的登录凭据。我通过添加刀ssh -i“name:*”“”
来修复