Git配置-多ssh密钥的(免密)登录&&windows开发工具使用免密登陆

最近弃用了 富文本编辑 ,转到 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,
经过几天摸索,整理了一些配置方法,完美的解决了现在的开发环境需求,

以下是配置的步骤:

1. 生成rsa密钥:

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
生成文件的名字


2. 复制公钥内容

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管理”


3. 配置多密钥

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步


5. 验证连接结果

root@adam-Latitude-3480:~/.ssh# ssh -T [email protected]
Welcome to Gitee.com, 道空无名!

-T
ssh连接时不显示终端

 '[email protected]'

以码云为例:
在"clone and download" 的时候, 选择'ssh'(注意,不是'https'),
会显示以下链接:
'[email protected]:powersky/YouDaoNote.git'

==》  “git@域名:用户名/项目名.git”

冒号 ':' 前的部分 ‘[email protected]’ 就是ssh地址

意思是 userName@hostName 


6. win下使用其他工具提交的配置


linux下开发,前5步就足够了,但是一般情况下我们在windows下开发比较常见,最近遇到一些windows下git提交的问题,做了一些整理,如下:


6-1、使用tortoiseGit图形工具

由于该工具使用的是putty的连接方式,所以默认的private key无法直接在该工具下使用

6-1-法1:替换shh.exe文件

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)

 

6-1-法2:使用.ppk文件

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私钥。

6-2、使用IDEA自带的版本工具

windows下idea的配置,相比前者就没有那么繁琐了,他可以使用本地的Git环境就行,方法如下:

1)  打开Settings,选择 Version Control --》 Git
2)  SSH executable 条件,将“Built-in”选择 改为 “Native”
保存设置即可


码字不易整理费时
copy之前请双手合十

你可能感兴趣的:(Git配置-多ssh密钥的(免密)登录&&windows开发工具使用免密登陆)