160 lines
3.2 KiB
Markdown
160 lines
3.2 KiB
Markdown
|
|
# 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
|
|||
|
|
# 使用 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:验证配置
|
|||
|
|
|
|||
|
|
```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
|
|||
|
|
```
|
|||
|
|
|