此处演示环境为 Windows10,远程存储库平台为 码云 。安装 Git 和 PUTTY 工具。
参考文档:
https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh
安装 Git
安装 PuTTY
安装后的 Git 文件结构如下
安装后的 PuTTY 文件如下
2.1 Generating a new SSH key
桌面右键打开 Git Bash 命令窗口。
执行 ssh-keygen 命令生成密钥对,如下图生成私钥文件 id_rsa,公钥文件 id_rsa.pub。在密钥对生成过程中,会提示设置密保 passphrase 用于保护密钥。
ssh-keygen -t rsa -b 4096 -C “[email protected]”
2.2 密保修改命令
支持通过下面的命令修改 passphrase
ssh-keygen -p
git config --global user.name niaonao
git config --global user.email [email protected]
git config --global --list
3.1 常用命令
查看 ssh-agent 是否运行中
eval $(ssh-agent -s)
启动 ssh-agent
eval ‘ssh-agent’
添加 SSH key 到 ssh-agent,命令行切换 cd 到密钥路径下,执行下面的命令。
ssh-add id_rsa
3.2 Adding your SSH key to the ssh-agent
执行 ssh-add 命令添加 SSH Key 到 ssh-agent,执行结果如下:
Administrator@DESKTOP-OB9FR3E MINGW64
$ cd ~/.ssh
Administrator@DESKTOP-OB9FR3E MINGW64 ~/.ssh
$ eval ‘ssh-agent’
SSH_AUTH_SOCK=/tmp/ssh-gMBElr6F4CaJ/agent.1081; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1082; export SSH_AGENT_PID;
echo Agent pid 1082;
Administrator@DESKTOP-OB9FR3E MINGW64 ~/.ssh
$ eval $(ssh-agent -s)
Agent pid 1091
Administrator@DESKTOP-OB9FR3E MINGW64 ~/.ssh
$ ssh-add id_rsa
Enter passphrase for id_rsa:
Identity added: id_rsa ([email protected])
Administrator@DESKTOP-OB9FR3E MINGW64 ~/.ssh
$ ssh-add -L
ssh-rsa AA1yc…(省略部分信息)…zG9n/NyrGPwZw== [email protected]
3.3 ssh-add 扩展命令
-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁
此处以 Github 为例,码云、华为云等代码托管平台配置方式相同。
将公钥 id_rsa.pub 配置到 自己的账户 SSH 设置下。
通过命令测试连接是否成功,github 可能会出现无响应的情况,可以跳过测试。
ssh -T [email protected]
ssh -T [email protected]
ssh -T [email protected]
测试响应信息
Administrator@DESKTOP-OB9FR3E MINGW64 ~/.ssh
$ ssh -T [email protected]
The authenticity of host ‘gitee.com (212.64.62.174)’ can’t be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘gitee.com,212.64.62.174’ (ECDSA) to the list of known hosts.
Hi niaonao! You’ve successfully authenticated, but GITEE.COM does not provide shell access.
5.1 克隆远程存储库项目
执行 clone 命令,从远程存储库克隆项目。下面是正确的克隆远程存储库的项目。
Administrator@DESKTOP-OB9FR3E MINGW64 /d/workspace/Hoxton
$ git clone [email protected]:niaonao/spring-cloud.git
Cloning into ‘spring-cloud’…
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), done.
5.2 Disconnected: No supported authentication methods available
在使用 GitHub 存储库时,git clone 报错,Disconnected: No supported authentication methods available (server sent: publickey)。 查看 Stack Overflow 更多解决方案
常见解决方案:
5.2.1 使用 PuTTY 生成 fileName.ppk 文件
打开 puttygen.exe 程序,选择 Conversions 菜单选项下 Import key 导入私钥文件,输入 passphrase。如下图选中 Save private key 生成 fileName.ppk 文件。
5.2.2 使用 fileName.ppk 文件
打开程序 pageant.exe,运行后会在 win 下有个图标,双击图标进入管理列表面板,点击 Add key 选中生成的 fileName.ppk 文件在弹出的窗口输入密保 passphrase,ssh-rsa 就添加完成了。此时再克隆远程存储库项目就不会报错了。
Power By niaonao, The End, Thanks