You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何配置Jenkins SSH认证节点使用非标准端口?

Jenkins SSH节点使用非标准端口的解决办法

当然可以不用标准22端口!你遇到的问题是Jenkins默认会把主机字段的内容当成纯IP/域名,自动拼接22端口,而且不识别ip:port这种格式——这确实有点反直觉,下面给你几个靠谱的解决办法:

  • 方法一:节点配置的高级选项(最直接)
    打开目标节点的配置页面,在「启动方式」选择「通过SSH启动从属节点代理」后,仔细找一下主机输入框旁边的**「高级」按钮**(很小,容易被忽略)。点击展开后,就能看到专门的「端口」输入字段了!直接填入你的非标准端口(比如2222),主机字段只填IP或域名就行,不用加端口号。保存配置后重新连接节点,就会用你指定的端口尝试SSH连接了。

  • 方法二:全局SSH服务器配置(适合多节点复用)
    如果有多个节点需要用相同的非标准端口,推荐用全局配置:

    1. 进入Jenkins的「系统管理」→「全局工具配置」
    2. 找到「SSH远程主机配置」(部分版本叫「SSH Servers」),点击「添加」
    3. 填写自定义的服务器名称、目标主机IP/域名、指定的非标准端口,再配置好认证方式(密码或密钥)
    4. 保存后回到节点配置页面,选择「通过SSH启动从属节点代理」,然后在「SSH服务器」下拉框里选你刚才配置好的服务器,Jenkins就会自动使用配置好的端口连接。
  • 方法三:修改Jenkins配置文件(应急方案)
    如果前两种方法都因为版本或权限问题无法使用,可以直接修改Jenkins的核心配置文件:

    1. 找到Jenkins的主目录(通常是~/.jenkins/)下的config.xml文件
    2. 找到对应节点的配置块,在<launcher>标签内添加<port>你的端口号</port>字段,示例如下:
      <launcher class="hudson.plugins.sshslaves.SSHLauncher" plugin="ssh-slaves@1.32.0">
        <host>192.168.1.100</host>
        <port>2222</port>
        <!-- 其他认证相关配置 -->
      </launcher>
      
    3. 保存文件后重启Jenkins,节点就会用指定端口连接了。不过这种方法不推荐,因为升级Jenkins可能会覆盖配置,而且不如图形界面配置直观。

针对你的Docker容器场景,使用非标准端口完全合理,没必要强行使用22端口,上面的方法都能解决你的问题,优先试试方法一,操作最直接。

内容的提问来源于stack exchange,提问作者crusty

火山引擎 最新活动