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 'sample@mail.com' -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 xxxx.xxxx.com
HostName xxxx.xxxx.com
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文件内容。
注:在windows环境下,找到
%Git_HOME%\etc\ssh\ssh_config
文件,将上述的config
文件的配置,添加到该文件下即可,否则连不上(提示输入git用户的密码
这只是让windows下可以在
Git Bash
方式下使用ssh,如果
windows下如果需要使用非gitBush
的方式,请参考5. win下使用其他工具提交的配置
至此,大功告成。
我们可以通过ssh命令验证结果。
4. 验证连接结果
root@adam-Latitude-3480:~/.ssh# ssh -T git@gitee.com
Welcome to Gitee.com, 道空无名!
-T
: ssh连接时不显示终端
'git@gitee.com'
: 以码云为例:在"clone and download" 的时候, 选择’ssh’(注意,不是’https’),
会显示以下链接:
‘git@gitee.com:powersky/YouDaoNote.git’冒号 ‘:’ 前的部分 ‘git@gitee.com’ 就是ssh地址
意思是 userName@hostName
自己搭建的gogs可能会出现连接不上的情况,检查配置gogs的用户是否是git(如果是root,是无法配置免密的)
5. win下使用其他工具提交的配置
linux下开发,前5步就足够了,但是一般情况下我们在windows下开发比较常见,最近遇到一些windows下git提交的问题,做了一些整理,如下:
5-1、使用tortoiseGit
图形工具
由于该工具使用的是putty的连接方式,所以默认的private key无法直接在该工具下使用
法1:替换shh.exe文件
- 右击打开 Tortoise --》 settings
- 选择左侧的 network 结点,替换右侧的 SSH --》 SSH client
将原tortoiseGit目录下的TortoiseGitPlink.exe
,替换为
%GIT_HOME%\usr\bin\ssh.exe
- 选择左侧的 Git --》 Remote 结点,在右侧的选中一条远程分支(例如:origin)
在Putty这个输入框中,选择我们之前配好的私钥(例:id_rsa_aas-gogs_adam.qiang_early-data
)
法2:使用.ppk文件
- 在tortoiseGit安装目录下,找到并打开 puttygen.exe 文件
(就是方法1里提到的TortoiseGitPlink.exe所属的同级目录,如果是在找不到安装目录,应该可以在开始菜单找到) - 点击 Load an existing private key 后面的 Load 按钮,
选择我们之前生成的rsa私钥(注意是一个不带后缀的文件;找不到的话,注意下文件的筛选条件[All Files]) - 点击 Save the generated key 后面的 Save private key 按钮,
(最好保存为与私钥文件同名的.ppk文件,并且放在同一个文件夹下[.ssh/]) - 同法1的最后一步,选择刚才生成的.ppk私钥文件
上述两种方法总结起来就是两句话:
- 要么换成 git 默认的 ssh.exe,使用原私钥文件
- 要么使用原TortoiseGitPlink.exe,重新生成并使用.ppk私钥
5-2、使用IDEA
自带的版本工具
windows下idea的配置,相比前者就没有那么繁琐了,他可以使用本地的Git环境就行,方法如下:
- 打开Settings,选择 Version Control --》 Git
- SSH executable 条件,将“Built-in”选择 改为 “Native”
- 保存设置即可
❤
码字不易
,整理费时
;
copy之前
,请双手合十
。