周末在 deepin linux 上安装深度学习环境的时候,把系统搞挂了,找了一下备份的系统,最近的还在去年 4 月份,思前想后,最后选择了重装系统,顺便记录下笔记。下面的操作实在全新安装的系统上进行了。
安装git
git地址在这里,用的是 deepin 所以直接使用源安装。
sudo apt-get install git
git的基本配置 看这里。
生成公钥
创建~/xingmu/.ssh
目录,并进入。
cd ~
mkdir .ssh
cd .ssh
在~/xingmu/.ssh
目录下,用 ssh-keygen 命令生成一组新的 id_rsa_new 和 id_rsa_new.pub,我这里需要使用 github 和 gitee(码云)两个平台,所以需要执行两次命令,分别生成 id_rsa_github/id_rs_github.pub 和 id_rsa_gitee/id_rsa_gitee.pub两组。
ssh-keygen -t rsa -C "xxx@xxx.com"
需要注意的是,平时都是默认生成 id_rsa
和 id_rsa.pub
。现在要在第一个提示输入出现时分别输入带有表示意义的名字,以便于识别,这里我输入的是 id_rsa_github
和 id_rsa_gitee
。
配置config
将公钥分别配置到对应的 git 平台上,然后在~/xingmu/.ssh
目录下新建 config 文件,配置参考如下。
## github
# 域名地址
Host github.com
Hostname github.com
# 配置使用用户名
User xxx@xx.com
PreferredAuthentications publickey
# 这里是id_rsa的目录位置
IdentityFile ~/.ssh/id_rsa_github
# 默认是22,如果是其他端口,一定要配置
Port 22
## 码云
# 域名地址的
Host gitee.com
Hostname gitee.com
# 配置使用用户名
User xxx@xx.com
PreferredAuthentications publickey
# 这里是id_rsa的目录位置
IdentityFile ~/.ssh/id_rsa_gitee
# 默认是22,如果是其他端口,一定要配置
Port 22
## 以下第三个或者更多
测试
ssh -T git@github.com
## 控制台输出类似下面内容
# Hi your name! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@gitee.com
## 控制台输出类似下面内容
# Hi xingmu! You've successfully authenticated, but GITEE.COM does not provide shell access.
如果出现如下的提示,选择 yes 继续就可以了
然后就可以愉快的玩耍了!!
ssh-agent解决Permission denied (publickey)问题
ssh -T git@gitee.com
## 控制台输出类似下面内容
# The authenticity of host 'gitee.com (218.11.0.86)' can't be established.
# ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
# Are you sure you want to continue connecting (yes/no)? yes
# Warning: Permanently added 'gitee.com,218.11.0.86' (ECDSA) to the list of known hosts.
# Permission denied (publickey).
首先确定工具是否可以使用
eval `ssh-agent`
## 控制台输出类似下面内容,表示该工具可以使用(结果输出为工具的进程PID)
# Agent pid 7488
注意: Windows系统下需在 git bash 或 cmder 命令行界面下操作
使用 ssh-add 工具将 SSH Key 添加到 ssh-agent
# 添加GitHub的SSH Key
ssh-add C:/Users/xxx/.ssh/github_id_rsa
# 添加码云的SSH Key
ssh-add C:/Users/xxx/.ssh/gitee_id_rsa
## 此时可能需要输入生成SSH Key时配置的密码(如果有设置的话),成功后输出类似以下内容
# Identity added: C:/Users/xxx/.ssh/github_id_rsa (C:/Users/xxx/.ssh/github_id_rsa)
# Identity added: C:/Users/xxx/.ssh/gitee_id_rsa (C:/Users/xxx/.ssh/gitee_id_rsa)
如出现类似下面提示:
ssh-add C:\Users\xxx\.ssh\gitee_id_rsa
## 控制台输出类似下面内容
# Could not open a connection to your authentication agent.
可以使用 ssh-agent bash --login -i
命令来启动 ssh-agent
, 然后在执行 ssh-add
ssh-add ~/.ssh/id_rsa_gitee
## 控制台输出类似下面内容
# Identity added: /c/Users/xingmu/.ssh/id_rsa_gitee (daihaoxin@126.com)
最后使用 ssh -T git@xxx.com
命令验证Key是否添加成功