使用 github 的 http 从本地链接克隆私有仓库时会出现无权限的情况,而且容易受代理的影响。
在本地Windows上生成公钥私钥对
ssh-keygen
可指定更多信息,例如
ssh-keygen -t rsa -b 1024 -f id_rsa -C "备注"
参数 解释
-b 采用长度1024bit的密钥对,b=bits,最长4096,不过没啥必要
-t rsa 采用rsa加密方式,t=type
-f 生成文件名,f=output_keyfiles
-C 备注,C=comment
会生成一个公钥私钥对 id_rsa (私钥) 和 id_rsa.pub (公钥)
id_rsa 不用管, 打开 id_rsa.pub 复制所有内容。 添加到 github
右上角 --> setting
--> SSH keys and GPG keys
--> new SSH key
把 id_rsa.pub 文件中的内容复制到对应位置就可以啦。
ssh -T [email protected]
之后 输入 yes 出现 You’ve successfully authenticated, but GitHub does not provide shell access. 则成功配置
之后就可通过 ssh 连接github 也可克隆私有仓库。
要保证密钥文件对只可被本用户读写。否则会报权限错误,在连接时会被阻止访问。可参考windows10, 自带的OpenSSH, key权限问题, 文件权限问题 。
在 LInux 系统中 可将 .ssh
目录权限设为 600 甚至 400(只有所有者有读权限),将 authorized_keys
文件权限设为 400。
ping github.com 时发现也无法解析,可能是域名解析出现问题
解决方法: 在 hosts (C:\Windows\System32\drivers\etc\hosts ) 文件中 添加 192.30.252.128 github.com (不一定是这个,自行百度)
是因为没配置好 ssh 的 config 文件
在 上述的 .ssh 目录下 找到 config 文件 没有就新建,有就打开然后添加 内容
Host github.com
User 注册github的邮箱
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa (不一定这个文件,添加到 github 的是那个公钥就填对应的私钥文件)
Port 443
之后就可以正常访问啦.[]
参考文章
git传输时使用的两种协议ssh和http的区别
git报错ssh: connect to host github.com port 22: Connection timed out
关于错误:ssh: Could not resolve hostname github.com: Name or service not known.fatal: Could not read from remote repository.
关于关于ssh -T [email protected]连接GitHub失败,以及Permission denied (publickey)问题