关于 ssh:在 jenkins 中为 git 仓库配置端口

Configure port for git repository in jenkins

我正在尝试在 Jenkins 中创建一个 Maven 项目。代码位于使用非标准端口 1754 的 Git 存储库中。

端口详细信息已经在配置文件中,但是 jenkins 中的 git 插件无法连接。它给出了端口 22 的错误。

添加以下网址后,Jenkins(Git 部分)出现以下错误:gitolite@10.115.2.110:AutomationCode

1
2
3
4
5
6
7
8
  Failed to connect to repository : Command"/usr/bin/git -c
  core.askpass=true ls-remote -h gitolite@10.115.2.110:AutomationCode
  HEAD" returned status code 128:
  stdout:
  stderr: ssh: connect to host 10.115.2.110 port 22: Connection refused
  fatal: Could not read from remote repository.
  Please make sure you have the correct access rights
  and the repository exists.

当我直接从终端克隆 git 存储库时,它工作正常,但在 Jenkins 中它没有使用端口的配置文件。

我尝试提供 ssh URL,但它也不起作用。 "Connection refused" error 来了。
我尝试在管理 Jenkins -> configure system page in SSH Server 部分提供固定端口号。但问题仍未解决。

有什么方法可以让我们在 Jenkins -> Git 中配置项目使用特定端口,或者访问 .ssh/config 文件来获取端口号?

我正在使用 SSH 密钥访问 git。


如果您使用相同的 url (gitolite@10.115.2.110:AutomationCode) 从命令行克隆,则:

  • 您正在使用端口 22(ssh 的标准),或者如下所述,带有 "Host gitolite" 条目的 ~/ssh/config 文件。
  • 您可能没有在 Jenkins 中使用与您的帐户命令行中相同的 ~/.ssh。

让您的 Jenkins 作业打印 \\'env\\' 以查看环境变量(和用户名)是否与您在终端中看到的相同。


找到 https://serverfault.com/questions/218256/specify-ssh-port-for-git

使用 jenkins 登录,切换到主目录(默认为 /var/lib/jenkins),在 .ssh/config 中设置端口,并从 git@foo.com:[port]/git/bar.git 中删除端口管道脚本,然后 git clone 成功。
我认为这很乏味,但它确实有效。

注意:你必须在远程 git 服务器上有一个 ssh 公钥。