无法 ssh 进入我的节点

无法 ssh 进入我的节点

首先,我过去两天一直这样做,但没有任何效果。

我已看过很多教程,但没有一个对我有用。

我已经安装了 jenkins,其中我有主节点,我想创建新节点。(一些代理)

我想要与 ssh 建立连接。

我的新节点上已经有 jenkins 用户并生成了 ssh 密钥。(jenkins 安装在哪里,没有 jenkins 用户)。

但是 jenkins 告诉我“在 /var/jenkins_home 中找不到 known_hosts”。但是这个文件存在。我检查了新节点上的端口 22 是否打开,是的,我可以从本地 PC 连接到它。

还有其他方法吗?但应该使用 SSH,而不是 agent.rar。

我应该检查什么?

编辑:

-rw-r--r-- 1 root root 0 Oct 24 17:36 /var/lib/jenkins/.ssh

sudo -u jenkins ssh jenkins@*IP* ls -la .ssh
The authenticity of host '*IP* (*IP*)' can't be established.
ECDSA key fingerprint is SHA256:*FINGERPRINT*.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/var/lib/jenkins/.ssh/known_hosts).
Permission denied (publickey).

答案1

通常,您将.ssh目录文件权限设置为700需要访问该目录的用户并由该用户拥有。

由于644它不会被任何人(除了 root)遍历,因此难怪它无法被用户进程读取。将所有权更改为 jenkins,并将权限更改为 700。然后正确设置目录内容的所有权/权限。

然后阅读 Unix 文件和所有权权限。

答案2

您的 Jenkins 用户的.ssh目录不存在,而是存在一些同名文件。要解决此问题:删除它,创建目录并设置所有者和权限。

rm ~jenkins/.ssh
install -d -o jenkins -m 0700 ~jenkins/.ssh

这将解决Failed to add the host to the list of known hosts错误。

然后将您的 Jenkins SSH 私钥和公钥复制到该目录中,并将其所有者更改为jenkins,将私钥的模式更改为,0600将公钥的模式更改为0644

通过运行再次测试sudo -u jenkins ssh jenkins@<nodehostname> ls -la .ssh

如果仍然失败,请将错误消息添加到您的问题中。

相关内容