首页 > 解决方案 > Jenkins SSH 身份验证:手动信任与手动提供的密钥

问题描述

Jenkins 上的 Github 文档“ ssh-slaves-plugin ”指定了几种 SSH 密钥验证策略,其中两种是“手动提供的密钥验证策略”和“手动信任的密钥验证策略”。

手动提供的关键验证策略如下:

检查远程主机提供的密钥是否与配置此连接的用户设置的密钥匹配。

此连接预期的 SSH 密钥。此密钥应采用算法值形式,其中算法是 ssh-rsa 或 ssh-dss 之一,值是密钥的 Base 64 编码内容。密钥应放在 /etc/ssh/<key_name>.pub

手动可信密钥验证策略如下:

检查远程密钥与当前标记为该主机信任的密钥是否匹配。

根据配置,第一次连接时会自动信任该密钥,或者将要求授权用户批准该密钥。授权用户需要批准远程主机提供的任何新密钥。

在允许建立连接之前,需要具有 Computer.CONFIGURE 权限的用户授权在与此主机的第一次连接期间提供的密钥。

如果未启用此选项,则在第一次连接时为该主机提供的密钥将被自动信任并允许所有后续连接使用,而无需任何手动干预。

我的问题是:如果我在“手动信任的密钥验证策略”中自动信任远程(无需手动批准第一个连接),那么它与“手动提供的密钥验证策略”之间的实际区别是什么?

是不是在提供的策略中,公钥必须存在于编排节点和代理中?

标签: jenkinsssh

解决方案


那么它与“手动提供的密钥验证策略”之间的实际区别是什么?

区别在于私有 SSH 密钥的来源。

手动提供的密钥验证策略

您直接在选项配置中复制密钥:

https://raw.githubusercontent.com/jenkinsci/ssh-slaves-plugin/master/doc/images/hkvs-manual-key.png

手动可信密钥验证策略

在此处输入图像描述

(这是我通常启用的选项)

从远程服务器获取密钥~/.ssh/id_rsa


推荐阅读