SSH 姿势,git pull push 免密码操作
生成密钥文件
ssh-keygen -t rsa -b 4096 -C "你的 GitHub 邮箱" -f ~/.ssh/id_rsa_company
上面命令输入并回车后,会提示你让你设置密码,我这里直接进行了回车,然后又会提示你,确认密码,我依然继续回车。
整个过程没有错误提示的话,这个时候密钥文件就生成成功了。
在 ~/.ssh
目录下会生成两个文件分别是,私钥文件 ~/.ssh/id_rsa_company
和公钥文件 ~/.ssh/id_rsa_company.pub
ssh-keygen
参数注解
参数 | 解释 |
---|---|
-t | 密钥的类型 |
-b | 密钥长度 |
-C | 注释 |
-f | 存储密钥文件的路径和文件名称,路径一般为 ~/.ssh 下,文件名称默认是 is_rsa,建议自己进行自定义,我命名为 id_rsa_company,这样就清楚知道是 rsa 方式以及是公司的密钥 |
GitHub 添加新的密钥
操作路径为 GitHub -> Settings -> SSH and GPG keys -> New SSH key 。
此时你会看到两个输入框 Title、Key,把公钥文件 ~/.ssh/id_rsa_company.pub
的全部内容粘贴到 Key 输入框当中,Title 为选填,这是为密钥添加一个描述,建议填写。我填写的是可以通过这个 Title,知道密钥是在哪台电脑。
点击 Add SSH key
后,如果出现让你输入你账号的密码的页面,填写相应的密码,并确认后便设置完毕了。
在 「SSH and GPG keys」页面,你会看到有个黑色的钥匙图标。
测试 SSH 连接
编辑 ~/.ssh/config
文件,增加如下配置项。
Host github.com
HostName github.com
User 你的 GitHub 邮箱账号地址
IdentityFile 私钥文件,例如 ~/.ssh/id_rsa_company
测试连接状态
ssh -T git@github.com
终端提示你是否继续连接,输入 yes
,当你看到「...You've successfully authenticated, but GitHub does not provide shell access」就说明连接成功了。
刷新 GitHub 的 SSH and GPG keys 页面,原来黑色的钥匙图标也变成了绿颜色的。
~/.ssh/config
文件配置注解
参数 | 解释 |
---|---|
Host | 自定义别名。如果把 github.com 改为 github-company,那么连接测试为 ssh -T git@github-company |
HostName | 主机地址 |
User | 用户名 |
IdentityFile | 私钥文件地址 |
如果提示 Permission denied (publickey),可以通过 ssh -vT git@github.com
查看详细的连接步骤,包括加载的配置文件、连接地址、端口、密钥文件等等内容。
官方相关文档
转载自:https://juejin.cn/post/6844903520815022088