TeamCity On-Premises 2024.03 Help

SSH 代理

SSH Agent 构建功能在构建过程中使用选定的已上传SSH密钥运行一个SSH代理。 当您的构建脚本运行SSH客户端时,它会使用已加载密钥的SSH代理。

检查 SSH Keys Management 以查阅 SSH 密钥上传的注意事项。

代理设置

TeamCity SSH 代理使用的是包含在 Linux 和 macOS 中的 OpenSSH 的原生 SSH 代理,所以这个功能对于这些操作系统来说是即插即用的。 对于 Windows,需要安装 OpenSSH(例如,作为 CygWin、MinGW 或 Windows 版 Git 发行版的一部分)。

SSH 代理必须添加到 Unix 类操作系统的 $PATH ,以及添加到 Windows 的 % \PATH%

对于每个 TeamCity 构建代理,会启动一个单独的 SSH 代理,所以如果在同一台机器上安装了几个构建代理,就可以使用此特性。

禁用 SSH 主机密钥检查

当您第一次连接到远程主机时,SSH 客户端会询问您是否要将远程主机的指纹添加到已知主机数据库中,位于 ~/.ssh/known_hosts

为避免在构建过程中出现此类提示,您需要提前配置已知的主机数据库。 如果您信任您正在连接的主机,您可以禁用已知主机的检查:

  • 或者通过在 ~/.ssh/config 中添加如下内容,对所有连接 执行此操作:

    Host * StrictHostKeyChecking no
  • 或通过运行带有 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 选项的 SSH 客户端,对单个命令进行操作。

sshssh-agentssh-add 命令的 man 页面中查看更多信息。

在一个构建中使用多个密钥

如果构建需要在几个外部系统中进行认证,它可以使用多于一个的 SSH 密钥。

在构建中使用多个 SSH 密钥:

  • 在项目级别上:在 SSH Keys 页面上添加密钥。

  • 在构建配置级别上:为每一个键添加多个 SSH Agent 构建功能

当构建开始时,它会从服务器下载 SSH 密钥并运行一个 SSH 代理,该代理会按照其他构建步骤的需求分发密钥。

最后修改日期: 16日 7月 2024年