设置通过SSH秘钥与GitHub进行认证和通信

连接GitHub已有的代码仓库时,可以使用SSH秘钥(公私钥)进行认证。如何创建SSH秘钥并将其添加至GitHub,请参考GitHub的帮助文档https://docs.github.com/cn/authentication/connecting-to-github-with-ssh。

需要注意的步骤是:

  • 你需要在家目录里创建.ssh文件夹,把SSH私钥拷贝进去,公钥不用拷贝进去。公钥的内容需要粘贴到你的GitHub账户网站的设置里,请参考https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account。
  • SSH私钥的文件名应该是id_rsa,因为id_rsa是git默认查找的私钥名字之一,否则就找不到私钥,会报错“[email protected]: Permission denied (publickey).”。如果你的SSH私钥的文件名不是id_rsa,那么应该改名为id_rsa。
  • 如果你使用的是Ubuntu等Linux操作系统,私钥文件不能有被其他人读写的权限:
chmod o-rwx ./id_rsa
chmod g-rwx ./id_rsa

完成设置后,就可以用家目录里的.ssh文件夹里的SSH私钥与GitHub进行认证和通信了。打开Git Bash,执行命令:

ssh -T [email protected]

如果输出以下信息:

Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.

说明通过SSH秘钥与GitHub进行认证和通信设置成功。

参考

https://docs.github.com/cn/authentication/connecting-to-github-with-ssh https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey