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 客户端,对单个命令进行操作。
在一个构建中使用多个密钥
如果构建需要在几个外部系统中进行认证,它可以使用多于一个的 SSH 密钥。
在构建中使用多个 SSH 密钥:
当构建开始时,它会从服务器下载 SSH 密钥并运行一个 SSH 代理,该代理会按照其他构建步骤的需求分发密钥。