1. 查看是否之前有过ssh,在终端输入。
cd ~/.ssh
如果显示No such file or directory ,表示之前没有创建过ssh,直接进入下一步;如果可以直接进入需要先清理rss,终端执行命令:
mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa*
2. 输入自己的github邮箱账号创建
在终端输入(邮箱账号替换为自己的Github登录邮箱)
ssh-keygen -t rsa -C "[email protected]"
可以一路回车,在默认地址创建
1. 打开github,点击settings,然后点击SSH and GPG keys
2. 点击New SSH key
3. 在终端中输入如下指令进入.ssh文件夹
cd ~/.ssh/
然后输入如下指令查看所有的文件
ls
然后输入如下指令打开rsa.pub
cat id_rsa.pub
然后将显示出来的内容都黏贴到github中的key部分
4. 输入如下命令判断是否成功
ssh -T [email protected]
出现这个就算成功"You`ve successfully authenticated"
用 SSH 方式推送 HTTP 形式的 github 链接可能会报错,尝试编辑 ~/.ssh/config 文件(没有就新增),windows/mac 在用户目录下的.ssh目录,添加如下内容:
Host github.com
HostName ssh.github.com
User git
Port 443
5. 利用git config 里设置github 登录名以及登陆邮箱,执行以下两个命令:
git config --global user.name "your name"
git config --global user.email "[email protected]"
6. 执行如下指令上传你的本地文件夹
cd /Users/Tush/Documents/test
git init
git add .
git commit -m 'first commit'
git remote add origin https://github.com/XXX/XXX.git
git push -u origin master
上一步最后一个指令也要注意是 "git push -u origin master" 还是 "git push -u origin main"。
在搬砖的过程中,或多或少都会与不同的代码托管平台打交道。比如我就喜欢用 gitee(码云) 作为 md 笔记中的图床,github 作为个人项目的代码管理仓库。而公司又会使用其它的托管平台来管理,比如阿里云等。
单个 SSH keys 在使用并生效后,再配置其它平台就会造成失效等各种问题。看了各个仓库的 SSH keys 生成教程,基本只有单个 SSH keys 的生成。在我们想要对多个代码托管平台上的项目同时操作的时候,帮助不大。
在配置多个 SSH keys 的过程中,我把配置的过程与碰见的一些问题,记录在该文章内,希望能给各位提供些许帮助。
打开 git Bash Here,输入命令,修改邮箱后一路回车。如需要设置密码的话可以额外自行配置。
-t : “是指定秘钥的类型”
-C :“是指定用于识别密钥的注释,即可以填写任意值,一般都填邮箱”
// 先生成一个默认的 id_rsa,不生成可能会导致别名的配置 keys 不生效
$ ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa
// 再依次指定别名,生成其他给平台用的 ssh_key 文件
$ ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/github_rsa
$ ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/gitee_rsa
$ ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/aliyun_rsa
此时,系统盘用户名下的用户 .ssh 目录下应该有 8 个文件:id_rsa 和 id_rsa.pub,github_rsa 和 github_rsa.pub,gitee_rsa 和 gitee_rsa.pub,aliyun_rsa 和 aliyun_rsa.pub。
可能会出现的错误:
生成的公钥文件(.pub)未在 .ssh 文件夹内,或者生成文件的位置不对,请检查控制台当下的路径与生成的路径。
有些控制台可能识别不了 “ ~ ” , 修改添加的路径直接用 “ ./ ” 操作
将它们的公钥文件(.pub)内部的所有内容复制黏贴到对应的代码托管仓库上。
以 github 为例,如图所示:
将对应平台的公钥添加至 Key 框内。Title 可随意填,具有标识性即可。
最后点击 Add SSH key 保存即可。
// 先执行命令:
ssh-agent bash
// 再添加私钥
$ ssh-add ~/.ssh/github_rsa
$ ssh-add ~/.ssh/gitee_rsa
$ ssh-add ~/.ssh/aliyun_rsa
// 添加成功如下图所示。
ssh-add 一些命令参数如下:
-D:删除 ssh-agent 中的所有密钥.
-d:从 ssh-agent 中的删除密钥
-L:显示 ssh-agent 中的公钥
-l:显示 ssh-agent 中的私钥
添加私钥,并通过命令 ssh-add -l 来查看当前配置成功的私钥列表,如图中所示:
ssh-add -l
可能会出现的错误:
ssh-agent bash 提示错误信息:unable to start ssh-agent service, error :1058
解决:管理员权限打开 Power Shell,执行:
Set-Service -Name ssh-agent -StartupType automatic
添加私钥提示错误信息:No such file or directory
解决:检查当前控制台路径与添加的路径是否匹配,调整路径即可,如上图所示。
若系统盘用户名下的 .ssh 目录下无 config 文件,那么新建一个 config 文件。该文件没有文件后缀名,类型显示为文件,双击后可用记事本等打开进行编辑。
我的配置文件如下,可参考配置文件参数说明:
# 配置文件参数
# Host : 配置对应的的主机名和 ssh 文件(可以直接填写 ip 地址)
# HostName : 要登录主机的主机名(建议与 Host 一致)
# PreferredAuthentications :配置登录的验证方式(含密码可自行查询配置方式)
# IdentityFile : 指明上面 User 对应的配置路径
# User : 登录名(如 github 的 username)
# Port: 端口号(默认 22)
# github.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile C:/Users/tag_a12/.ssh/github_rsa
User [email protected]
# aliyun.com
Host code.aliyun.com
HostName code.aliyun.com
PreferredAuthentications publickey
IdentityFile C:/Users/tag_a12/.ssh/aliyun_rsa
User [email protected]
// 命令语句
$ ssh -T git@[Host 配置名]
// 使用如下:
$ ssh -T [email protected]
$ ssh -T [email protected]
成功提示:
Welcome to GIT,your name!
也可以直接进行项目的克隆或提交进行测试。我的建议是,在配置完成后,对各个平台都进行一次链接测试。
可能会出现的错误:
提交代码时,提示 Host key verification failed。
原因:若你的项目先克隆到了本地,再修改 SSH keys 后,在提交的时候由于公钥不一样了,所以无法登录。
解决:只需要进行一次链接测试便可解决。
以上就是多个 SSH-Keys 的配置过程,如果在配置过程中还发现有其它问题或者还有看不懂的地方,欢迎留言讨论。