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