直接用IP访问自建git服务器太麻烦,如何用域名绑定git服务器

Author: laowang - Posted:7小时前 - View:31

自建了一个git服务器,使用IP直接访问git仓库一段时间太麻烦了,有时候IP忘记了,还要打开登录服务器的XShell软件看着IP组合git仓库链接。

域名都是易记的,用域名访问git服务器最好,就像github一样。

用AI工具和搜索引擎搜索了整理了下,两步就搞定。

用A记录方式先解析一个域名绑定到git服务器。

说明一下:

  1. 直接解析到服务器即可,不用绑定git服务器上特定的目录
  2. 若SSH端口是默认22的话,那就不用看第二步,到此就可以直接使用域名访问git服务器了,如:
    # git clone git@git.domain.com:/srv/repo/example.git

git.domain.com就是你解析出来的域名。

SSH端口不是默认22的话,就要继续第二步配置了

在客户端用户主目录中(Windows中一般是C:\Users\Administrator\.ssh),打开.ssh的目录的config文件,如果没有则创建,然后用记事本打开config文件作如下配置:

Host mygit
HostName git.domain.com
Port 999

Host mygit2
HostName git2.domain.com
Port 888

以上配置文件配置好后,可以直接使用以下方式对git仓库进行管理了。

# git clone git@mygit:/srv/repo/example.git
# git clone git@mygit2:/srv/repo/example.git

发现了吗?如果你有配置文件的话,访问git时可以直接使用Host别名即可,不需要用到整个域名访问,更简短更容易了

我的配置文件中只配置了三行,并且三行为一组,如果你有多个git服务器,就配置多个组就行,当然config文件不止这三个配置项,详细的配置项如下(根据AI搜索整理)。

配置指令说明

  • Host‌: 指定一个主机名或别名,用于在SSH命令中引用
  • HostName‌: 指定要连接的主机的实际地址或IP
  • User‌: 指定登录时使用的用户名
  • Port‌: 指定SSH服务器的端口号,默认是22
  • IdentityFile‌: 指定用于认证的私钥文件的路径。可以指定多个IdentityFile行来使用多个私钥
  • IdentitiesOnly‌: 如果设置为yes,ssh将只使用IdentityFile指定的密钥文件进行认证,忽略其他方式(如密码或agent)
  • ForwardAgent‌: 如果设置为yes,允许通过SSH代理转发认证信息
  • ProxyCommand‌: 指定一个命令来通过代理连接SSH服务器。例如,使用ProxyCommand ssh -q -W %h:%p jumphost可以通过jumphost跳转连接到目标主机
  • PreferredAuthentications‌: 指定认证方法的优先级列表,例如publickey, password
  • AddKeysToAgent‌: 控制是否将密钥添加到SSH代理。例如,add表示添加,而no表示不添加
  • ServerAliveInterval‌: 设置服务器活跃检查的时间间隔(秒),以防止连接空闲时被服务器关闭
  • StrictHostKeyChecking‌: 控制是否检查服务器的SSH密钥。例如,no表示不检查,这在首次连接时很有用
  • UserKnownHostsFile‌: 指定已知主机文件的路径,用于存储服务器的SSH密钥

你的config文件中的配置项根据你的实际需要来选择,我只用到以上三个而已。

0 人点赞  ∙  0 人收藏  
加入收藏 点赞 我要评论

目前共有 1 条回复

dehoo
- dehoo - 6小时前

这样的确好多了,不再硬记IP地址