那些莫名其妙"自愈"的bug gogs ssh key报错

本文记录了一次在使用Git进行代码克隆或拉取操作时遇到的权限拒绝错误,详细描述了客户端和服务器端的错误信息,包括sign_and_send_pubkey失败、目录权限问题等,并分享了一个令人惊讶的自愈经历。

git clone 或者git pull 时发现错误

客户端报错

sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

 

服务器端报错

Aug 21 12:00:34 sshd[247]: Connection closed by authenticating user git 192.168.118.30 port 56016 [preauth]
Aug 21 12:00:36 sshd[249]: Authentication refused: bad ownership or modes for directory /data/git/.ssh
Aug 21 12:00:36 sshd[249]: Authentication refused: bad ownership or modes for directory /data/git/.ssh
Aug 21 12:00:36 sshd[249]: Connection closed by authenticating user git 192.168.118.30 port 56020 [preauth]

尝试解决错误,各种重启,重装,依然报上述错误. . 索性不管,回家睡大觉.

第二天到单位, 它自愈了....

 

 

 

 

### 如何在 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 的安全通道链接关系。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值