快速使用
ssh-keygen -t rsa -b 4096 -C "your_email@example.com
创建ssh密钥(一直回车,不要指定目录,不要设置密码)- 将生成的
~/id_ras.pub
中的内容复制到Github对应位置即可
1.SSH简介
SSH(Secure Shell)是一种用于在网络上安全地进行远程登录,文件传输或执行命令的协议。它通过加密通信的方式,保护了用户的身份验证信息和数据传输,防止被中间人攻击或窃听。
2. 如何使用SSH?
2.1 先看看本地是否已经创建过ssh密钥
键入命令: ls -al ~/.ssh
( 查看用户根目录下的 .ssh 文件夹中的内容), 是否包含以下中的一种:
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
如果存在任意一个,则说明已经创建过密钥,你可以删除重新创建,也可以将文件中的内容( 其实就是公钥 ) 直接复制到Github的SSH Key
中, 如果该密钥没有密码,你就可以直接使用。
2.2 自己创建一个SSH的密钥对
键入密令:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
命令执行后,在 ~/.ssh/
目录下将生成 id_ras
和 id_ras.pub
两个文件, 其中id_ras.pub
的内容就是密钥中的公钥
如果你的系统包含了新算法,也可以使用
ssh-keygen -t ed25519 -C "your_email@example.com"
, 这将生成id_ed25519.pub
2.3 将生成的公钥内容放置在Github上
登录你的Github账号, 点击 头像
-> Settings
-> SSH and GPG keys
-> new SSH key
执行创建
2.4 测试是否可用
- 选取你的Github上的任意项目,复制其SSH项目链接
- 本地开启命令行窗口 ,键入命令
git clone git@github.com:username/ProductName.git
, 如果拉取成功,则说明配置完成! - 如果在2.2步骤中,创建密钥时设置了密码,则每次拉取项目时,需要输入密钥的密码才可以
3. SSH代理,管理密钥的密码
如果你在创建密钥时设置了密码,又不想每次拉取工程时都进行密码输入,可以将密码交由SSH的代理 ssh-agent
来管理。
3.1 ssh-agent如何管理密钥?
第一步
打开命令行窗口,键入 eval "$(ssh-agent -s)"
该命令用于启动 SSH 代理,并将相关的环境变量设置在当前 shell 会话中,以便于后续的密钥管理
第二步
键入 ssh-add -K ~/.ssh/id_rsa
将SSH的私钥添加进SSH代理中 ,首次添加时需要输入 设置的密钥的密码
后续在此命令行窗口中,再去拉取代码时,将不需要再输入密钥的密码了
3.2 如果我重新开启一个命令行窗口, 则需要再次执行上述流程,如果简化?
将下述命令直接添加进入 ~/.zshrc
中,这样每次打开命令行窗口时,这两行命令都将先执行,也就不再需要手动输入了
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
id_rsa
如果和你的命名不同,需要替换为你的密钥文件的名称