可以参考 https://github.com/cloudyan/learn-git/blob/master/docs/git-config.md
生成ssh key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
(当前目录 ~/.ssh)
然后可以命名默认id_rsa 或者id_rsa_second 把对应的pub放到公共服务器上。
ssh-keygen(基于密匙的安全验证):需要依靠密钥进行安全验证,必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。
- -t 即指定密钥的类型。密钥的类型有两种,一种是RSA,一种是DSA。
- -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
- -C 表示要提供一个新注释,用于识别这个密钥。””里面不一定非要填邮箱,可以是任何内容,邮箱仅仅是识别用的key。
令不同 Host 实际映射到同一 HostName,但密钥文件不同。Host 前缀可自定义如xxx。
配置文件 mac 为 /etc/ssh/ssh_config
(推荐使用 ~/.ssh/config
)
# 示例如下
# test
# 配置完成,可以使用下面的命令测试
# 测试时替换掉 example.com
# ssh -T git@example.com
# 测试 github
# ssh -T git@github.com
# 例如 码云
# ssh -T git@gitee.com
# 例如 coding
# ssh -T git@git.coding.net
# 测试 oschina
# ssh -T git@git.oschina.net
# bitbucket
# ssh -T git@bitbucket.org
# 测试gitlab(可替换gitlab.com为您的 GitLab 实例域)
# ssh -T git@gitlab.com
# 为便于独立控制,可针对每个平台独立密钥
# Default github user(xxx1@qq.com)
# HostName 这个是真实的域名地址
Host github.com
HostName github.com
IdentityFile ~/.ssh/github.com_rsa
# second user(xxx2@qq.com)
# 建一个github别名,新建的帐号使用这个 Host 别名做克隆和更新
Host github2
HostName github.com
IdentityFile ~/.ssh/yue_rsa
# 公司的 gitlab (xxx 改为公司域,按照以下格式,已验证可用)
# ssh -T git@gitlab.xxx.com 测试是否连通
Host gitlab.xxx.com
IdentityFile ~/.ssh/gitlab.xxx.com_rsa
# HostName gitlab.xxx.com # 可选
# PreferredAuthentications publickey # 可选
# ssh -T git@gitee.com
Host gitee.com
IdentityFile ~/.ssh/gitee.com_rsa
# 配置示例
# Host myhost # 这里是自定义的host简称,以后连接远程服务器就可以用命令ssh myhost,如 git@github.com [注意下面有缩进]
# HostName # 主机名可用ip也可以是域名(如:github.com或者bitbucket.org)
# User # 登录用户名(如:xiaohan)
# IdentityFile # 证书文件路径(如~/.ssh/xiaohan_rsa)
# # Port 22 # 服务器open-ssh端口(默认:22,默认时一般不写此行)
# # IdentityFile # C:\\Users\\Alice\\.ssh\\id_rsa
# # PreferredAuthentications 配置登录时用什么权限认证--可设为 publickey,password publickey,keyboard-interactive等