笔记:使用git经ssh协议向远程推送或拉取代码库时出错
📔

笔记:使用git经ssh协议向远程推送或拉取代码库时出错

Published
发布:2022-05-17
Last Updated
修改:2024-02-29

连接超时

由于某些都懂的原因会导致无法通过ssh协议访问远程服务,当基于ssh协议访问远端代码库时会出现连接ssh 22端口超时的问题,此时咱可以修改ssh配置通过https端口来建立ssh连接
如添加及修改配置文件~/.ssh/config
Host github.com Hostname ssh.github.com Port 443

无访问权限

虽然能与远程服务成功建立ssh连接,但仍会出现访问远程代码库被拒绝的问题,如出现错误:
Error: Permission denied (publickey)
此时,需要确保在本地生成正确的非对称密钥,并复制其中的公钥配置到远程服务端。
首先生成某种算法的非对称密钥,配置正确的comment,如:
$ ssh-keygen -t ed25519 -C "myname@github.com"
然后在本地添加该非对称密钥,如:
$ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/id_ed25519_github
然后将该非对称密钥中的公钥信息复制配置到远程服务端
$ cat ~/.ssh/id_ed25519_github.pub
接着在ssh配置文件中指定使用的私钥,如修改配置文件~/.ssh/config:
Host github.com Hostname ssh.github.com Port 443 IdentityFile ~/.ssh/id_ed25519_github

config文件权限错误

按上述方法配置好文件~/.ssh/config 以后,运行git push 命令上传代码也可能会出现错误:
Bad owner or permissions on ~/.ssh/config
这时需要修改相关文件的读写权限,可使用以下命令:
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/*

参考链接

  1. https://help.github.com/articles/using-ssh-over-the-https-port/
  1. https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey
  1. https://superuser.com/questions/1212402/bad-owner-or-permissions-on-ssh-config-file