【发布时间】:2015-12-03 12:29:20
【问题描述】:
我想就我目前遇到的问题向大家寻求帮助。这是我的问题。
我想使用相同的 SSH 密钥访问多个 Ubuntu 服务器。这样做的原因是我想通过 CI 服务器将我们的应用程序部署在 DEV、STAGING、PROD、LOCAL 环境中。我们在这些环境中使用 Ubuntu 服务器。技术负责人要求我生成一个密钥并将其用于所有服务器,以使持续集成变得容易。 我们为 CI 使用 Teamcity,Teamcity 服务器及其代理在同一 Windows 服务器中运行。
我在一台服务器(本地服务器)中生成了 id_rsa 和 id_rsa.pub 密钥对。
下一步是将 id_rsa.pub 复制到所有其他服务器,并将 id_rsa 文件上传到 Teamcity 服务器。
我假设现在 Teamcity 服务器拥有 id_rsa 密钥,它应该能够 ssh 到 Ubuntu 服务器并通过 SSH Exec(部署程序插件)发出命令。
有人可以从 SSH 密钥的角度告诉我我所做的并假设到目前为止是正确的吗?远程服务器是 Ubuntu,客户端(Teamcity 服务器)是 Windows 服务器。
如上所述,我尝试连接到从城市服务器生成密钥的服务器。在这种情况下,我将 id_rsa 上传到 teamcity 服务器并尝试连接。我已将以下内容作为 id_rsa 文件的路径。我验证了该文件实际上位于以下位置。
E:\BuildServerConfig\config\projects\MyProject\pluginData\ssh_keys 其中 E:\BuildServerConfig 是数据目录。
但我收到以下错误
com.jcraft.jsch.JSchException: java.io.FileNotFoundException: E:\BuildServerConfig\config\projects\MyProject\pluginData\ssh_keys(系统找不到指定的路径)
我知道路径是可选的,当我删除路径时,它给出了以下错误
意外错误:java.lang.IllegalArgumentException:jetbrains/buildServer/util/FileUtil.resolvePath 的 @NotNull 参数“路径”的参数不得为空
请教我一下?
【问题讨论】:
标签: linux windows ubuntu teamcity ssh-keys