SSh生成密钥
·
生成新的符合要求的密钥
方法一:生成 3072 位的 RSA 密钥(推荐)
bash
ssh-keygen -t rsa -b 3072 -C "your_email@example.com"
执行后会提示:
text
Generating public/private rsa key pair. Enter file in which to save the key (/home/zj/.ssh/id_rsa):
建议输入一个新文件名,避免覆盖你现有的密钥:
text
/home/zj/.ssh/id_rsa_3072
然后一路回车即可。
方法二:生成 4096 位的 RSA 密钥(更安全)
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
同样,建议保存为新文件:
text
/home/zj/.ssh/id_rsa_4096
方法三:使用 ED25519 算法(如果服务器支持)
ED25519 密钥长度固定且足够安全,很多现代服务器都支持:
bash
ssh-keygen -t ed25519 -C "your_email@example.com"
保存路径建议:
text
/home/zj/.ssh/id_ed25519
生成后的步骤
1. 查看并复制新公钥
bash
# 如果用了 RSA 3072 cat ~/.ssh/id_rsa_3072.pub # 如果用了 RSA 4096 cat ~/.ssh/id_rsa_4096.pub # 如果用了 ED25519 cat ~/.ssh/id_ed25519.pub
复制输出的全部内容。
2. 配置 SSH 使用新密钥
编辑 SSH 配置文件:
bash
nano ~/.ssh/config
添加以下内容(如果没有这个文件就新建一个):
text
Host gitserver
HostName gitserver
User git
IdentityFile ~/.ssh/id_rsa_3072 # 改成你实际使用的密钥文件路径
保存退出(nano 中用 Ctrl+X,然后 Y,然后 Enter)。
3. 把新公钥添加到服务器
方式 A:通过 Web 界面添加(如果有 GitLab/Gitea 等)
-
登录
gitserver的 Web 页面 -
个人设置 -> SSH Keys
-
粘贴新公钥,保存
方式 B:让管理员帮你添加
-
把新公钥内容发给服务器管理员
-
让他添加到
/home/git/.ssh/authorized_keys
方式 C:如果你能用密码登录任一账号
bash
# 假设你能用 zj 账号登录 ssh zj@gitserver # 登录后执行(需要 sudo 权限) echo "粘贴新公钥内容" | sudo tee -a /home/git/.ssh/authorized_keys
4. 测试连接
bash
ssh -T git@gitserver
5. 重新克隆仓库
bash
git clone git@gitserver:dengwei/T113S3_gb.git
可选:如果你不想管理多个密钥
你可以把新密钥设为默认密钥:
bash
# 备份旧密钥(可选) mv ~/.ssh/id_rsa ~/.ssh/id_rsa_old mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa_old.pub # 让新密钥使用默认名称 ssh-keygen -t rsa -b 3072 -f ~/.ssh/id_rsa -C "your_email@example.com"
但不建议删除旧密钥,因为可能其他服务器还在用。
总结
错误的根本原因是:服务器要求密钥长度 ≥ 3072 位,而你现有的密钥只有 2048 位。解决方法是生成一个 3072 位或更长的 RSA 密钥(或使用 ED25519),然后把新公钥添加到服务器上。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)