最近弃用了 富文本编辑 ,转到 markdown编辑 ,
已用markdown更了新一版,欢迎访问:
(git) 实现多ssh密钥(免密)登录不同的Git系统
目录:
1. 生成rsa密钥:
2. 复制公钥内容
3. 配置多密钥
5. 验证连接结果
6. win下使用其他工具提交的配置
6-1、使用tortoiseGit图形工具
6-1-法1:替换shh.exe文件
6-1-法2:使用.ppk文件
6-2、使用IDEA自带的版本工具
写这篇博客的缘由:
之前在的开发一直使用的github单个ssh的免密登陆,
后来使用了linux环境开发遇到了gogs,配置了多ssh免密登陆后感觉不是很繁琐,一直没做记录,
后开开发环境有迁徙到了windows,摸索了一番,发现ssh在gitBush上没有问题,笔记又搁浅了,
后来在图形化工具使用ssh遇到了问题,被迫只能使用https,
经过几天摸索,整理了一些配置方法,完美的解决了现在的开发环境需求,
以下是配置的步骤:
ssh-keygen -t rsa -C 'comment' -f id_rsa_xxxx
root@adam-Latitude-3480:~/.ssh# ssh-keygen -t rsa -C 'aas-gogs_adam.qiang_early-data' -f id_rsa_aas-gogs_adam.qiang_early-data
输入密钥的密码(不填代表免密)
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_aas-gogs_adam.qiang_early-data.
Your public key has been saved in id_rsa_aas-gogs_adam.qiang_early-data.pub.
The key fingerprint is:
SHA256:hlRquS ..... .... xJJ84 aas-gogs_adam.qiang_early-data
The key's randomart image is:
+---[RSA 2048]----+
| =*B+ |
| |
| ........ |
| |
| ... o |
+----[SHA256]-----+
root@adam-Latitude-3480:~/.ssh# ll
总用量 16
drwx------ 2 root root 4096 5月 13 18:06 ./
drwx------ 39 root root 4096 5月 13 16:57 ../
-rw------- 1 root root 1675 5月 13 18:06 id_rsa_aas-gogs_adam.qiang_early-data
-rw-r--r-- 1 root root 412 5月 13 18:06 id_rsa_aas-gogs_adam.qiang_early-data.pub
-rw-r--r-- 1 root root 0 5月 13 16:57 known_hosts
-t rsa -C '[email protected]' -f id_rsa_xxx
-t : The type of the key to generate
密钥的类型
-C : comment to identify the key
用于识别这个密钥的注释(很多网站和软件用这个注释作为密钥的名字)
-f : file name
生成文件的名字
root@adam-Latitude-3480:~/.ssh# cat id_rsa_aas-gogs_adam.qiang_early-data.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrZxCjPuWEgfalfWfue1k5cY7zKjAgtv6CO
..........
4U4TJGlRKiJuUxt aas-gogs_adam.qiang_early-data
将cat的xxx.pub 的内容, 复制到git管理页面(github/gogs)“个人设置 --> SSH管理”
root@adam-Latitude-3480:~/.ssh# pwd
/root/.ssh
root@adam-Latitude-3480:~/.ssh# touch config
root@adam-Latitude-3480:~/.ssh# vim config
Host gogs.analyticservice.net ###可以随意命名,链接时使用这个名字
HostName gogs.analyticservice.net
User git
Port 22
IdentityFile ~/.ssh/id_rsa_aas-gogs_adam.qiang_early-data
Host github.com
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_github-adamqwy
Host gitee.com
HostName gitee.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa_gitee-dkwm
每份秘钥要与git网址对应。然后清空known_hosts文件内容。
至此,大功告成。
我们可以通过ssh命令验证结果。
注:在windows环境下,找到 %Git_HOME%\etc\ssh\ssh_config 文件,将上述的“config”文件的配置,添加到该文件下即可,否则连不上(将会提示输入git用户的密码)
这只是让windows下可以在gitBush方式下使用ssh,如果
!!windows下如果需要使用非gitBush的方式,请参考第6步
root@adam-Latitude-3480:~/.ssh# ssh -T [email protected]
Welcome to Gitee.com, 道空无名!
-T
ssh连接时不显示终端
以码云为例:
在"clone and download" 的时候, 选择'ssh'(注意,不是'https'),
会显示以下链接:
'[email protected]:powersky/YouDaoNote.git'==》 “git@域名:用户名/项目名.git”
冒号 ':' 前的部分 ‘[email protected]’ 就是ssh地址
意思是 userName@hostName
linux下开发,前5步就足够了,但是一般情况下我们在windows下开发比较常见,最近遇到一些windows下git提交的问题,做了一些整理,如下:
由于该工具使用的是putty的连接方式,所以默认的private key无法直接在该工具下使用
1) 右击打开 Tortoise --》 settings
2) 选择左侧的 network 结点,替换右侧的 SSH --》 SSH client
将原tortoiseGit目录下的TortoiseGitPlink.exe,替换为
%GIT_HOME%\usr\bin\ssh.exe
3) 选择左侧的 Git --》 Remote 结点,在右侧的选中一条远程分支(例如:origin),
在Putty这个输入框中,选择我们之前配好的私钥(例:id_rsa_aas-gogs_adam.qiang_early-data)
1) 在tortoiseGit安装目录下,找到并打开 puttygen.exe 文件
(就是方法1里提到的TortoiseGitPlink.exe所属的同级目录,如果是在找不到安装目录,应该可以在开始菜单找到)
2) 点击 Load an existing private key 后面的 Load 按钮,
选择我们之前生成的rsa私钥(注意是一个不带后缀的文件;找不到的话,注意下文件的筛选条件[All Files])
3) 点击 Save the generated key 后面的 Save private key 按钮,
(最好保存为与私钥文件同名的.ppk文件,并且放在同一个文件夹下[.ssh/])
4) 同法1的最后一步,选择刚才生成的.ppk私钥文件
上述两种方法总结起来就是两句话:
1.要么换成 git 默认的 ssh.exe,使用原私钥文件;
2.要么使用原TortoiseGitPlink.exe,重新生成并使用.ppk私钥。
windows下idea的配置,相比前者就没有那么繁琐了,他可以使用本地的Git环境就行,方法如下:
1) 打开Settings,选择 Version Control --》 Git
2) SSH executable 条件,将“Built-in”选择 改为 “Native”
保存设置即可
❤码字不易
,整理费时
;copy之前
,请双手合十
。