我希望能够使用Rundeck在远程节点上执行shell命令,我发现this video解释了如何执行此操作,但我不了解私钥部分以及如何配置它。我一直收到以下错误:
连接到节点的身份验证失败:“test-001”。确保你的 资源定义和凭据是最新的。失败: AuthenticationFailure:连接到节点的身份验证失败: “测试-001”。确保您的资源定义和凭据已启动 到目前为止。
我设置了远程服务器,并按如下方式配置了resource.xml文件:
<node name="test-001" description="demo for test" tags="demo" hostname="10.10.10.10:22" osFamily="unix" osName="Linux" osVersion="2.6.32" username="demo" />
我是否需要将ssh-key
值添加到xml文件中?如果是这样,我是否必须将公钥或私钥从Rundeck服务器复制到主机服务器?
此外,用户名演示也有密码,那么如何定义呢?
答案 0 :(得分:13)
Rundeck主机服务器通过私钥认证连接到节点,这与SSH私钥认证完全相似。请按照以下步骤将节点添加到服务器rundeck。
打开resources.xml文件并添加以下内容。
<node name="rundeck node2" description="Rundeck node2" tags="node2" hostname="10.1.0.1" osArch="amd64" osFamily="unix" osName="Linux" osVersion="3.11.10-03111015-generic" username="leo" ssh-keypath="/var/lib/rundeck/node2.key"/>
您可以在节点和私钥文件名中更改SSH用户名。除此之外,您还可以更改所有其他命名参数,如节点名称和标签等。
现在进入你的节点服务器。
leo@c1a5f48a6c4c:~/.ssh$ pwd
/home/leo/.ssh
leo@c1a5f48a6c4c:~/.ssh$ cat id_rsa.pub >> authorized_keys
leo@c1a5f48a6c4c:~/.ssh$ chmod g-w authorized_keys
leo@c1a5f48a6c4c:~/.ssh$ cat id_rsa
将私钥保存到文件&#34; /var/lib/rundeck/node2.key"在rundeck主机上。现在身份验证还可以,并准备好从rundeck仪表板执行adhoc命令
答案 1 :(得分:0)
就我而言,我的私钥中有一个密码短语。确保您的私钥密码为空。
答案 2 :(得分:0)
文档到处都是,不同版本的关键字也不同,如果使用了错误的关键字,也不会发出警告。
相关文档在这里: https://docs.rundeck.com/2.11.3/plugins-user-guide/ssh-plugins.html
您需要指定:
ssh-authentication: privateKey
...并且:
ssh-keypath: /path/directly/to/.ssh/id_rsa
(假设您正在使用文件系统密钥存储。)
使用以下方法从密钥中删除密码短语:
ssh-keygen -p -m PEM -f /path/to/your/.ssh/id_rsa
...并且不要忘记确保id_rsa文件归rundeck所有并且具有适当限制的权限。