配置单个 git 仓库 ssh
创建公钥文件
$ cd ~/.ssh
## 新建工作的SSH key 文件
$ ssh-keygen -t rsa -C "example.email.com"
可以指定存储的文件位置,不指定则使用默认位置。连续回车即可生成两个文件 id_rsa.pub 文件中的内容便是公钥。id_rsa 为私钥。
创建config
## 创建一个config文件
$ touch config
## 太宽松的权限会被git认为是错误,缩写权限为600`
$ chmod 600 config
## 编辑config文件并把第3步中内容添加在config文件
$ vim config
添加config文件内容
Host gitlab.xxx.com
HostName gitlab.xxx.com
User git
Port 22
IdentityFile /home/xxx/.ssh/id_rsa
- Port: 指定端口,ssh 服务的端口,有些 ssh 可能使用的不是 11 端口
- Host:后面的名称根据不同的帐号取对应的名字
- IdentityFile:指定私钥路径
在 git 上提交SSH公钥
将 id_rsa.pub 拷贝到网站上
ssh 替换 https/http
有两种配置方式
1、配置命令
git config --global url."git@gitlab.xxx.com:".insteadof "https://gitlab.xxx.com/"
注意:此命令后面执行的会替换前面的,可以通过直接编辑文件添加 http 的配置,在命令行 code .gitconfig 。
2、修改配置文件
cd ~
vim .gitconfig
填入
[url "git@gitlab.xxx.com:"]
insteadOf = https://gitlab.xxx.com/
[url "git@gitlab.xxx.com:"]
insteadOf = http://gitlab.xxx.com/
配置多个仓库
ssh-keygen -t rsa -C 'github.com' -f id_rsa_github
将对应的公钥拷贝到 github 后,配置本机 ssh(编辑 ~/.ssh/config)
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
问题解决
- windows 环境找不到 ssh-keygen
找到 git.exe 的位置,找到对应的 Git 文件夹,将 Git\usr\bin 加入环境变量。
本文详细介绍了如何在Linux系统中配置SSH,包括创建公钥文件、管理私钥和公钥、设置SSHconfig文件,以及两种方法将SSH公钥添加到GitLab以便通过SSH而非HTTPS访问仓库。



2949

被折叠的 条评论
为什么被折叠?



