简单来说,ssh是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用ssh协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
需要指出的是,ssh只有一种协议,存在多种实现,既有商业实现,也有开源实现。
cd ~/.ssh
mkdir ~/.ssh
ssh-keygen -t rsa -C "[email protected]"
id_rsa_mt
cd ~/.ssh
➜ .ssh ls
id_rsa_mt id_rsa_mt.pub
GitHub 生成的对应ssh-key
id_rsa_github 私钥 id_rsa_github.pub 公钥
Gitlab 生成的对应ssh-key
id_rsa_mt 私钥 id_rsa_mt.pub 公钥
➜ ~ cd ~/.ssh
➜ .ssh
touch config
vim config
具体配置如下
Host github
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
Host gitlab
HostName gitlab.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_mt
# 以 # 开头的是注释,会被忽略
# 每项配置都是 参数名 参数值 或者 参数名=参数值,参数名不分大小写,参数值区分
# Host: 机器别名,用于标识特定的配置
# HostName: 主机名,一般为 ip 或者 主机域名(实际测试 gitlab.com 或者 gitlab.company.com 都可用)
# IdentityFile: 私钥证书文件位置,没有pub后缀;默认位置是~/.ssh/id_rsa,如果采用默认证书,可不填此项
# Port: SSH访问主机的端口号,默认是22端口
ssh-add ~/.ssh/id_rsa_mt
ssh-add -d ~/.ssh/id_rsa_mt
Identity added: /Users/liqiqi/.ssh/id_rsa_mt ([email protected])
ssh-add -l
pbcopy < ~/.ssh/id_rsa_mt.pub
[email protected]:lqliqi/mac-create-config-multi--ssh.git
ssh-add ~/.ssh/id_rsa_mt
ssh-add ~/.ssh/id_rsa_github