设置 Jenkins 以运行 ssh 命令--为已禁用登录的用户存储 SSH 密钥在哪里?

设置 Jenkins 以运行 ssh 命令--为已禁用登录的用户存储 SSH 密钥在哪里?

我正在尝试生成一个密钥对,以允许一个 jenkins 服务器通过 ssh 连接到另一个服务器(如果相关,则通过 ssh-steps 插件)。公钥将进入目标主机上的授权密钥。我的理解是它应该很简单,类似于:

sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost 

然后将密钥保存到/home/jenkinsuser/.ssh/id_rsa并获取公钥以添加到主机上的授权密钥。

我看到的是,这sudo su - jenkinsuser不起作用,并/etc/passwd显示该用户的 shell 已设置为/bin/false,以禁用登录,正如我理解的那样。

考虑到这一点,我正在寻找指定 ssh 密钥位置的最佳实践,因为用户已禁用登录,因此没有主目录。

答案1

Jenkins 有一个内置的凭证存储这是存放 Jenkins 作业使用的 SSH 密钥的最合适位置。凭据存储用于存储 Jenkins 作业使用的各种凭据,例如 SSH 密钥、用户名/密码和 API 密钥。凭据存储允许委派访问权限并确保敏感凭据不会写入作业输出。

答案2

您不需要以 root 身份运行密钥生成脚本。

我通常将所有密钥存储在 中/etc/ssh。这是主目录之外的目录,我认为/etc这是最准确的目录。

相关内容