问题描述
在使用 [ git clone xxx ] 时失败,提示 [ Permission Denied (publickey) ] 。
SSH连接过程
- 本地向远程服务端发起连接
- 服务端随机生成一个字符串发送给发起登录的本地端
- 本地对该字符串使用私钥(~/.ssh/id_rsa)加密发送给服务端
- 服务端使用公钥(~/.ssh/id_rsa.pub)对私钥加密后的字符串进行解密
- 服务端对比解密后的字符串和第一次发送给客户端未加密的字符串,若一致则判断为登录成功
问题解决
使用前已为远程服务器添加公钥,且之前可以正常git clone,最终发现原因原来是未添加SSH密钥到ssh-agent。
执行:
ssh-add ~/.ssh/id_rsa
新问题:执行ssh-add时失败并提示 [ Could not open a connection to your authentication agent ]
执行:
ssh-agent bash