macbook m1 连接gerrit ssh 拉去代码不成功
记录一下,折腾了一早上~
mac系统:macOS Sonoma 14.0
openssh:9.3
问题描述:
拉代码:
git clone "ssh://XXXX/"
报错了:
Cloning into 'autotest'...
fanjiexiong@10.0.10.208: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决办法:
先看一下关于SSH的知识:
设置 SSH 时,需要生成新的 SSH 私钥并将其添加到 SSH 代理中。 使用密钥进行身份验证或对提交进行签名之前,还必须将 SSH 公钥添加到 GitHub 上的帐户中
Mac OS 生成密钥和公钥:
ssh-keygen -t ed25519 -C "your_email@example.com"
执行此命令后,你将被提示选择密钥文件的保存位置和设置可选的密码。生成的密钥对将包括一个私钥文件(通常在 ~/.ssh/id_ed25519
)和一个关联的公钥文件(通常在 ~/.ssh/id_ed25519.pub
)
ssh-keygen
是一个用于生成、管理和操作 SSH 密钥对的命令行工具。-t
选项用于指定要生成的密钥的类型。在这种情况下,-t ed25519
指定生成的密钥类型为 Ed25519。Ed25519 是一种公钥/私钥对的加密算法,它提供了高度的安全性和性能。ed25519
是指定的密钥算法,它基于椭圆曲线密码学,并用于 SSH 密钥对的生成。这是一种现代的、高度安全的密钥算法,通常用于替代传统的 RSA 或 DSA 密钥。
将新生成的密钥添加到ssh代理中:
ssh-add ~/.ssh/id_ed25519
ssh-agent是后台运行的程序,它将密钥加载到内存中,因此您不需要每次使用密钥时都输入密码。 最妙的是,你可以选择让服务器访问你的本地 ssh-agent
,就像它们已经在服务器上运行一样。 这有点像要求朋友输入他们的密码,以便您可以使用他们的计算机
将新生成的公钥添加到github、gitlad中:
cat ~/.ssh/id_ed25519.pub
这个公钥很短,不要怀疑你粘贴错了,在web页面添加进去就好了
测试ssh连接:
ssh -T git@github.com
因为我们部署在内网也没有域名,所有就是用户名+内网ip
ssh -T tarzan@10.0.0.1
返回: **** Welcome to Gerrit Code Review ****
就成功了