Files
gerrit/SSH配置详细步骤.md

160 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2025-12-22 17:12:39 +08:00
# SSH 配置详细步骤
## 问题
SSH 签名算法不匹配,需要启用兼容的算法。
## 解决方案:创建 SSH 配置文件
### 步骤 1检查配置文件是否存在
在 Git Bash 中执行:
```bash
# 检查配置文件是否存在
ls -la ~/.ssh/config
# 如果文件不存在,会显示 "No such file or directory"
```
### 步骤 2创建配置文件
```bash
# 创建配置文件
touch ~/.ssh/config
# 设置正确的权限(重要!)
chmod 600 ~/.ssh/config
```
### 步骤 3编辑配置文件
使用文本编辑器打开配置文件:
```bash
# 使用 notepadWindows
notepad ~/.ssh/config
# 或使用 nanoGit Bash
nano ~/.ssh/config
# 或使用 vimGit Bash
vim ~/.ssh/config
```
### 步骤 4添加配置内容
在文件中添加以下内容(如果文件已有内容,追加到文件末尾):
```
Host 101.43.95.130
Port 29418
PubkeyAcceptedKeyTypes +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
```
**重要**
- `Host` 后面是服务器 IP 或域名
- `Port` 后面是 SSH 端口29418
- 每行前面有 4 个空格或 1 个 Tab保持缩进
### 步骤 5保存文件
- 如果使用 notepad`Ctrl+S` 保存,然后关闭
- 如果使用 nano`Ctrl+O` 保存,`Enter` 确认,`Ctrl+X` 退出
- 如果使用 vim`i` 进入插入模式,编辑后按 `Esc`,然后输入 `:wq` 保存退出
### 步骤 6验证配置
```bash
# 查看配置文件内容
cat ~/.ssh/config
```
应该显示:
```
Host 101.43.95.130
Port 29418
PubkeyAcceptedKeyTypes +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
```
### 步骤 7测试连接
```bash
# 测试 SSH 连接
ssh -p 29418 renjianbo@101.43.95.130 gerrit version
```
如果成功,会显示 Gerrit 版本信息,例如:
```
gerrit version 3.3.8
```
### 步骤 8推送代码
```bash
cd /d/ttt/test-project
git push origin HEAD:refs/for/master
```
## 如果还是不行
### 方法 A使用命令行参数临时
```bash
# 测试连接
ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa -p 29418 renjianbo@101.43.95.130 gerrit version
# 推送代码
GIT_SSH_COMMAND="ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa" git push origin HEAD:refs/for/master
```
### 方法 B检查公钥是否正确添加
1. 访问:`http://101.43.95.130:8080/#/settings/ssh-keys`
2. 确认您的公钥在列表中
3. 确认公钥状态为 "Valid"
### 方法 C重新生成 ed25519 密钥
如果 RSA 密钥一直有问题,可以生成 ed25519 密钥:
```bash
# 生成新的 ed25519 密钥
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519
# 查看新公钥
cat ~/.ssh/id_ed25519.pub
```
然后将新公钥添加到 Gerrit。
## 常见问题
### Q: 配置文件权限错误
```bash
# 修复权限
chmod 600 ~/.ssh/config
chmod 700 ~/.ssh
```
### Q: 配置文件格式错误
确保:
- 每行前面有正确的缩进4 个空格或 1 个 Tab
- 没有多余的空格或特殊字符
- 文件使用 UTF-8 编码
### Q: 配置不生效
```bash
# 清除 SSH 已知主机(如果需要)
ssh-keygen -R [101.43.95.130]:29418
# 重新测试
ssh -v -p 29418 renjianbo@101.43.95.130 gerrit version
```