gogs私服对应SSH 协议配置

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

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/configSSH 客户端配置

### 如何在 Gogs 中添加和配置 SSH 密钥 #### 创建 SSH 密钥 为了能够在 Gogs 上通过 SSH 进行身份验证,首先需要在本地生成一个新的 SSH 密钥对。如果已经存在其他用途的密钥,则建议为 Gogs 单独创建一组新的密钥以避免冲突。 运行以下命令来生成专用于 Gogs 的 RSA 类型密钥: ```bash ssh-keygen -t rsa -f ~/.ssh/id_rsa_gogs -C "你的邮箱地址" ``` 上述命令会在 `~/.ssh/` 文件夹下生成两个文件:`id_rsa_gogs` 和 `id_rsa_gogs.pub`。前者是私钥,后者是公钥[^1]。 #### 查看并复制公钥 找到刚刚生成的公钥文件路径 (`~/.ssh/id_rsa_gogs.pub`) 并将其内容复制到剪贴板中以便稍后上传到 Gogs: 执行以下命令查看公钥的内容: ```bash cat ~/.ssh/id_rsa_gogs.pub ``` 将显示的结果完整复制下来备用[^2]。 #### 登录 Gogs 账号并设置 SSH Key 访问 Gogs 的 Web 界面,在右上角点击头像图标选择 **Settings (个人设置)** -> 左侧菜单栏中的 **SSH Keys** 或者类似的选项名称(具体取决于版本)。接着按提示操作完成新 SSH Key 的录入工作——把之前准备好的公钥粘贴进去即可保存提交[^3]。 #### 修改客户端配置支持多个主机名区分不同服务 为了避免与其他远程仓库连接混淆或者覆盖原有默认行为的情况发生,推荐编辑用户的全局 `.ssh/config` 文件实现更精确控制每种情况下的认证方式。如果没有该文件可以手动建立它;其结构大致如下所示: ```plaintext Host your-gogs-domain.com IdentityFile ~/.ssh/id_rsa_gogs IdentitiesOnly yes # 如果还有其他的常规SSH需求保留这一部分正常定义就好 Host * IdentityFile ~/.ssh/id_rsa_default ``` 这样当向指定域名为目标发起请求时就会自动选用对应的专用密钥而不会误用别的凭据数据了。 #### 测试连通性确认无误 最后一步非常重要也是必不可少的一个环节就是检验整个流程是否顺畅有效果。可以通过尝试简单的 ping 命令模拟实际交互过程看看反馈消息里有没有错误提示信息返回回来作为判断依据之一: ```bash ssh -T git@your-gogs-domain.com ``` 如果一切顺利的话应该能够看到类似于 “Welcome to GitLab, @username!” 字样的欢迎语句证明成功建立了基于 SSH 的安全通道链接关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值