github 上的手册: https://docs.github.com/en/authentication/connecting-to-github-with-ssh
创建 ssh key
# 先检查一下 ~/.ssh 文件夹下是否有 ssh key, 建议使用 ed25519, 默认使用的 rsa 有一些服务器可能不支持
ssh-keygen -t ed25519 -C "your_email@example.com"
添加 ssh key 至 git 服务器
# 复制公钥到剪贴板
cat ~/.ssh/id_ed25519.pub # 显示公钥
cat ~/.ssh/id_ed25519.pub | xclip -sel clip # 复制公钥
# 在 gitea 上,进入用户|设置|ssh 密钥|添加
# 点验证, 将后台生成的随机字段进行签名,并提交签名结果进行验证
启用 ssh-agent
# 检测 ssh-agent 是否已经运行, 下列的命令是否有结果
ps -ef | grep ssh-agent | grep -v grep # 列进程
echo $SSH_AUTH_SOCK # 检查环境变量
# 启动 ssh-agent,
eval "$(ssh-agent -s)"
测试 ssh key
# 检测设置是否正确 -v 显示详细信息 -T 测试连接,不需要交互式 shell
# 我使用的 gitea 所有验证通过后提示没有权限。 有一些会显示一条欢迎信息
ssh -vT your_email@example.com -p port
使用 ssh 源管理 git 仓库
git clone ssh://git@git.x.com:805/x/Avalonia.git