ssh
生成密钥
ssh-keygen -t rsa -C "YourEmailAdress"
这个指令的意思是使用 ssh-keygen
生成密钥,-t
参数密钥的加密方式是 rsa
,-C
参数可以为密钥指定备注
输入完成之后会进入一个交互式终端界面,首先会询问你的密钥文件名称:
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
之后会提示用户输入密码:
Enter passphrase (empty for no passphrase):
这个密码是用来保护你的私钥的,嫌麻烦一路回车即可
然后就生成了公钥(.pub) 和 密钥
生成的密钥使用 ssh-add
指令添加到 ssh-agent 的身份验证代理中:
ssh-add id_rsa_github
ssh-add id_rsa_company
NOTE如果不实用
ssh-add
指令添加新的密钥到 ssh agent 中的话,系统会仍然使用id_rsa
作为默认的 SSH Key,因为id_rsa
是被默认添加到 ssh agent 中的
config文件
在.ssh
文件夹下创建config文件 可以使用 touch config
这个文件用于配置 SSH 客户端的信息,例如主机名、端口号、用户名、密钥等
编辑config文件
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
config 配置文件中的各项配置意思为:
- Host:指定连接到的主机名,可以是IP 或者 别名,ssh会自动匹配
- User:指定使用的用户名
- Hostname:指定连接到的主机的实际域名或IP地址
- Port:SSH 服务的端口号,默认为 22,可以不写
- PreferredAuthentications:指定优先使用的身份验证方法,指定为publickey,即使用公钥进行身份认证。
- IdentityFile:指定要使用的私钥文件路径,即指向你创建的私钥
NOTE如果ip相同会匹配第一个配置信息,假设要连上不同的github仓库,可以利用 SSH 建立连接的一个特性:目标服务器可以直接写成为服务器地址,同时也可以写为我们在 SSH config 文件中配置的
Host
,也就是服务器的别名。ssh git@github
配置Github ssh
生成密钥后,将公钥添加到Github SSH Key,然后在config文件中添加配置即可
可以用ssh -T git@github.com
来看是否配置成功
TIP-v 可以显示详细信息
配置服务器免密登陆
首先生成密钥,然后把公钥到内容添加到服务器的~/.ssh/authorized_keys
每个公钥一行
然后在config文件中添加
Host your_ip
User root
Hostname your_ip
IdentityFile ~/.ssh/id_rsa_aliyun