在 rundeck 中添加一个远程节点
Add a remote node in rundeck
我希望能够使用 Rundeck 在远程节点上执行 shell 命令,我发现 this video 解释了如何执行此操作,但我不了解私钥部分以及如何执行配置它。我不断收到以下错误:
Authentication failure connecting to node: "test-001". Make sure your
resource definitions and credentials are up to date. Failed:
AuthenticationFailure: Authentication failure connecting to node:
"test-001". Make sure your resource definitions and credentials are up
to date.
我设置了一个远程服务器,我配置了 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 文件?如果是这样,我是否必须将 public 或私钥从 Rundeck 服务器复制到主机服务器?
另外,用户名demo也有密码,请问如何定义?
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用户名和私钥文件名。除此之外,您还可以更改所有其他命名参数,例如节点名称和标签等。
现在进入你的节点服务器。
- 创建一个 ssh 用户,这里是 leo
- 切换到用户 leo。生成 SSH 密钥
- ssh-keygen
- 将 public 键附加到 authorized_keys
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
将私钥保存到rundeck主机上的文件“/var/lib/rundeck/node2.key”。现在身份验证没问题,可以从 rundeck 仪表板执行临时命令
就我而言,我的私钥中有一个密码。请确保您的私钥密码为空。
文档随处可见,不同的版本具有不同的关键字,并且在您使用错误的情况下没有警告。
相关文档在这里:
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 所有,并且具有适当的限制权限。
我希望能够使用 Rundeck 在远程节点上执行 shell 命令,我发现 this video 解释了如何执行此操作,但我不了解私钥部分以及如何执行配置它。我不断收到以下错误:
Authentication failure connecting to node: "test-001". Make sure your resource definitions and credentials are up to date. Failed: AuthenticationFailure: Authentication failure connecting to node: "test-001". Make sure your resource definitions and credentials are up to date.
我设置了一个远程服务器,我配置了 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 文件?如果是这样,我是否必须将 public 或私钥从 Rundeck 服务器复制到主机服务器?
另外,用户名demo也有密码,请问如何定义?
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用户名和私钥文件名。除此之外,您还可以更改所有其他命名参数,例如节点名称和标签等。
现在进入你的节点服务器。
- 创建一个 ssh 用户,这里是 leo
- 切换到用户 leo。生成 SSH 密钥
- ssh-keygen
- 将 public 键附加到 authorized_keys
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
将私钥保存到rundeck主机上的文件“/var/lib/rundeck/node2.key”。现在身份验证没问题,可以从 rundeck 仪表板执行临时命令
就我而言,我的私钥中有一个密码。请确保您的私钥密码为空。
文档随处可见,不同的版本具有不同的关键字,并且在您使用错误的情况下没有警告。
相关文档在这里: 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 所有,并且具有适当的限制权限。