ssh 无法加载新创建的私钥的问题
在一个新的系统上使用一个 ssh
来连接 Github 的过程中,通过 ssh-keygen
来生成对应的密钥对:
# 如果是 windows 的话,需要进入 c\user\.ssh,因为 c:\user 对应 Unix 文件目录的 ~ 目录
cd ~/.ssh && ssh-keygen
按照命令输入对应的密钥的文件名,输入密码,会在当前的目录下生成两个文件:一个是 xxx.pub,这个是密钥的公钥;另一个是 xxx,为私钥。
当需要使用 ssh
来访问 Github 仓库时,需要将 xxx.pub 中的内容放入 Github 中,生成对应的密钥对。
可以通过如下的命令来检查密钥对是否已经生效:
ssh -vT git@github.com
如果输入出现如下的信息,则说明是成功的:
但是一般情况下由于 ssh
中缓存的存在,一般是无法成功的,可能会是如下的情况:
这种情况是由于 ssh
的缓存中没有添加新创建的密钥对,因此无法进行 ssh
连接,具体的解决方案为:首先删除已有的连接,然后开启一个新的 ssh
代理,将新创建的密钥对加入到 ssh
中,具体的命令如下:
# 删除所有已知的地址
rm -i ~/.ssh/know_hosts
# 开启一个 agent,关联到对应的私钥
eval $(ssh-agent -s)
# 将私钥添加到对应的 agent 中,注意将这里的 administrator 换成创建的私钥文件名
ssh-add ~/.ssh/administrator
再次测试即可成功连接