-
检查是否已经存在SSH keys
ls -al ~/.ssh
如果已经存在,则结果会列出目录文件列表,则进入第3步;
. .. id_rsa id_rsa.pub
如果不存在,则进入第2步
# ls: /Users/hony/.ssh: No such file or directory
-
生成SSH Keys
在终端中输入以下命令,填写自己的邮箱
$ ssh-keygen -t rsa -b 4096 -C "*[email protected]*" # Generating public/private rsa key pair.
在接下来的步骤中,按回车键:
Enter file in which to save the key (/Users/hony/.ssh/id_rsa):
如果不想设置密码,则继续回车:
Enter passphrase (empty for no passphrase): Enter same passphrase again:
当看到下面的图形时,就可以了
The key's randomart image is: +---[RSA 4096]----+ | . . . Eoo| | o = *.++| | + B +*o| | + o B += o| | o S O o. +.| | . = . .o*| | . =O| | oO| | .B| +----[SHA256]-----+
-
添加SSH Key到ssh-agent
-
确保 ssh-agent 是可用的
$ eval "$(ssh-agent -s)" # Agent pid 2806
-
添加SSH Key 到 ssh-agent
# id_rsa是SSH key对应的文件的名字,如果要使用一个已经存在的key添加到ssh-agent的话,替换id_rsa名字即可 $ ssh-add ~/.ssh/id_rsa # Identity added: ...
-
-
把 SSH Key添加到远程仓库的账号上
-
复制
SSH Key
到粘贴板$ pbcopy < ~/.ssh/id_rsa.pub
-
登录 github或者bitbucket等远程仓库添加SSH Key即可。
-
不同的 SSH 密钥类型和大小
ssh-keygen 命令允许使用不同算法的秘钥类型和大小。此处列出常见的SSH秘钥类型并解释每种类型的特征:
- RSA:一种得到广泛支持的算法,RSA是许多情况下的最佳选择。需要创建一个2048或4096位的秘钥,前者足够,后者是理想的。
- ECDSA: 一种比较新的算法,ECDSA提供与RSA类似的安全级别,但秘钥更短,从而提高了性能。支持的秘钥大小为256、384和521位。
- Ed25519: 一种新兴的算法,Ed25519改进了以前秘钥类型的安全性和性能。Apple本身在某些情况下使用这种身份验证方法,包括在某些设备之间的通信期间。秘钥只有256位,同时仍提供高级别的安全性。
ssh-keygen 常用的命令
- -t : 使用此命令输入您希望使用的算法。RSA、ECDSA和Ed25519 是常见且可行的选择。
- -b:通过输入使用的位数来指定秘钥的长度。在输入 -b 命令之前,请检查所选算法的要求,因为不同的算法支持的位数不同。
- -p: 可以使用-p 命令更改秘钥的密码。只需要在ssh-keygen 中包含 -p, 终端就会请求文件位置,输入相关秘钥的路径并在出现提示时创建新密码。
- -f: 使用-f 命令将 ssh-keygen 定向到特定文件位置。
- -C: 命令为秘钥添加注释,这是一种有用的标记方法。