1. 参考文档
1.1 Git安装及SSH Key管理之Windows篇
1.2 向 Git 服务器添加 SSH 公钥
2. 生成私钥公钥对
进入【C:\Users\用户名.ssh】,点击鼠标右键-选择Git bash here, 然后输入以下命令, 生成id_rsa_myserver, id_rsa_myserver.pub文件
ssh-keygen -t rsa -C "yourmail@qq.com"
-t rsa表示所用加密算法,yourmail@qq.com只是个名字,用于区分不同的加密对
DELL@DESKTOP-PIH4AL3 MINGW64 ~
$ pwd
/c/Users/DELL
DELL@DESKTOP-PIH4AL3 MINGW64 ~
$ ssh-keygen -t rsa -C "yourmail@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/DELL/.ssh/id_rsa): id_rsa_myserver
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_myserver
Your public key has been saved in id_rsa_myserver.pub
The key fingerprint is:
SHA256:vIynzrPimT+UOtT9vjXJtjShZUGhybsDUbLtggyDmGI yourmail@qq.com
The key's randomart image is:
+---[RSA 3072]----+
| . . o. |
| o . * + |
|+E. o o = . |
|o + o o . . |
| .ooS o + |
| . +o.+ * o |
| . o. +.+ O |
| ++oo .= + |
| .+=*+ .o.. |
+----[SHA256]-----+
DELL@DESKTOP-PIH4AL3 MINGW64 ~
$
3 添加私钥到ssh-agent
添加过程中,如果报错“Could not open a connection to your authentication agent ” 可按照参考文章里,先kill原有的agent进程。
exec ssh-agent bash
eval ssh-agent -s
ssh-add ~/.ssh/id_rsa_myserver
4 添加config文件
1、创建config文件,将文件创建在【.ssh】目录下
①在windows下新建一个txt文本,然后将名字改成config(包括.txt后缀)
②在git bash下,直接touch config即可创建一个config文件
2、编辑config文件,修改如下内容:
# gitlab
Host myserver
HostName gitool.glanway.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_myserver
User DELL
# github
Host myserver2
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_myserver2
User DELL
参数说明如下:
HostName #这个是真实的域名地址
IdentityFile #这里是id_rsa的地址
PreferredAuthentications #配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
User #配置使用用户名
5. 在git服务器上部署公钥
- 还是先在 Git 服务器上使用 git 用户登录,然后为它建立 .ssh 目录以及 authorized_keys 文件来管理所有用户的 SSH 公钥。
git@Linux:~$ mkdir .ssh
git@Linux:~$ touch .ssh/authorized_keys
git@Linux:~$ chmod 600 .ssh/authorized_keys
git@Linux:~$
- 将公钥加入git服务器的git账号的目录.ssh下的authorized_keys文件中。
cat /tmp/id_rsa_myserver.pub >> ~/.ssh/authorized_keys