gogs私服对应SSH 协议配置

发布于:2025-04-07 ⋅ 阅读:(28) ⋅ 点赞:(0)

一、使用非特权端口(推荐)

1. 修改 Gogs 配置文件
sudo nano /home/git/gogs/custom/conf/app.ini

找到 [server] 部分,修改为:

[server]
START_SSH_SERVER = true
SSH_PORT         = 2222  # 改为1024以上的端口
2. 重启 Gogs
sudo systemctl restart gogs
二、清除 SSH 缓存

如果之前尝试过连接,清除缓存:

ssh-keygen -R 192.168.28.130:2222

、检查并生成 SSH 密钥(如果没有密钥)

  1. 检查是否存在 SSH 密钥

    ls ~/.ssh/id_*
    • 如果没有任何 id_rsa  文件,需要生成新密钥:

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • 检查密钥权限,确保私钥权限正确(仅当前用户可读):

      chmod 600 /c/Users/51675/AppData/Roaming/SPB_Data/.ssh/id_rsa
      chmod 644 /c/Users/51675/AppData/Roaming/SPB_Data/.ssh/id_rsa.pub

、 将公钥添加到 Git 服务器

     复制公钥 

cat ~/.ssh/id_rsa.pub

      登录 Git 服务器(如 Gogs),在 SSH Keys 设置中添加该公钥 。

、修改客户端的 SSH 配置(永久生效)

编辑 ~/.ssh/config

nano /c/Users/51675/AppData/Roaming/SPB_Data/.ssh/config

添加以下内容:

Host 192.168.28.130
    HostName 192.168.28.130
    Port 2222
    User git
    IdentityFile /c/Users/51675/AppData/Roaming/SPB_Data/.ssh/id_rsa
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

逐行解析

1. Host 192.168.28.130
  • 作用:定义配置块的开始,指定该配置仅对 192.168.28.130 生效。

  • 注意Host 后的名称可自定义(如 mygit),实际连接时会根据 HostName 解析。

2. HostName 192.168.28.130
  • 作用:指定服务器的真实 IP 地址或域名。

  • 为什么需要:当 Host 使用别名时,此处需填写实际地址。

3. Port 2222
  • 作用:指定 SSH 连接端口为 2222(默认是 22)。

  • 适用场景:Git 服务器(如 Gogs)常使用非标准端口。

4. User git
  • 作用:以 git 用户身份登录服务器。

  • 为什么是 git:Git 服务通常创建专用系统用户 git 管理仓库。

5. IdentityFile /c/Users/51675/AppData/Roaming/SPB_Data/.ssh/id_rsa
  • 作用:指定用于认证的私钥文件路径。

  • 关键点

    • 路径需为绝对路径(Windows 下使用 /c/ 替代 C:\)。

    • 确保私钥权限为 600(命令:chmod 600 /path/to/id_rsa)。

6. HostKeyAlgorithms +ssh-rsa
  • 作用:允许客户端接受服务器的 ssh-rsa 类型主机密钥。

  • 背景

    • OpenSSH 8.8+ 默认禁用 ssh-rsa(认为不够安全)。

    • 旧版 Git 服务器可能仅支持 ssh-rsa,需手动启用。

7. PubkeyAcceptedAlgorithms +ssh-rsa
  • 作用:允许客户端使用 ssh-rsa 类型的公钥进行认证。

  • 与 HostKeyAlgorithms 的区别

    • HostKeyAlgorithms:控制客户端如何验证服务器身份。

    • PubkeyAcceptedAlgorithms:控制客户端如何向服务器证明自己。

六、使用SSH clone

保存后,后续可直接使用:

git clone git@192.168.28.130:root/project2.git
七、辅助说明
文件/命令 作用
~/.ssh/known_hosts 存储已验证过的主机密钥
~/.ssh/id_rsa 默认私钥文件
~/.ssh/config SSH 客户端配置


网站公告

今日签到

点亮在社区的每一天
去签到