最准、最轻量的SSH密钥验证方式是直接用ssh -T命令测试,如ssh -T git@github.com,成功返回“Hi username! You've successfully authenticated...”,失败则提示“Permission denied (publickey)”等明确原因。
直接用 ssh -t 命令测试,这是最准、最轻量的方式,不登录、不执行远程命令,只验证 ssh 密钥是否被平台正确识别。
确认已配置有效的 SSH 密钥
Git 托管平台(如 GitHub、GitLab、Gitee)只认你上传到账户的公钥。先确保:
- 本地已生成密钥对(推荐
ed25519):ssh-keygen -t ed25519 -C "your_email@example.com" - 公钥内容(
~/.ssh/id_ed25519.pub)已完整复制并粘贴到平台的 SSH Keys 设置页 - 私钥权限严格为
600:chmod 600 ~/.ssh/id_ed25519
用 ssh -T 测试连接
不同平台对应不同主机名,命令格式统一:
- GitHub:
ssh -T git@github.com - GitLab(官方):
ssh -T git@gitlab.com - Gitee:
ssh -T git@gitee.com
首次运行会提示确认服务器指纹,输入 yes;成功时返回类似 Hi username! You've successfully authenticated... 的欢迎消息。失败则明确提示原因,比如 Permission denied (publickey) 或连接超时。
遇到 Permission denied (publickey) 怎么办
这不是密码错,而是密钥环节出问题。重点检查:
- 是否漏传公钥?登录平台后台,确认 SSH Key 列表里有刚生成的那条(比对公钥开头是否为
ssh-ed25519 AAAA...) - 是否用了错误的私钥?如果本地有多对密钥,需指定:
ssh -i ~/.ssh/id_ed25519 -T git@github.com - 是否未将私钥加入 ssh-agent?运行
eval "$(ssh-agent -s)"后再执行ssh-add ~/.ssh/id_ed25519
配合 ~/.ssh/config 简化测试(可选但实用)
若常连多个平台或自建 Git 服务,可提前在 ~/.ssh/config 中定义别名:
Host github HostName github.com User git IdentityFile ~/.ssh/id_ed25519 Host gitee HostName gitee.com User git IdentityFile ~/.ssh/id_ed25519
之后测试只需:ssh -T github 或 ssh -T gitee,更简洁,也避免手误输错域名。


















