不完全指南,主要描述笔主所遇到的问题
ssh的开始 - 起因
第一次接触ssh是在笔主大一时的导论课--信息安全导论上,但是当时只是麻木的学习理论知识,对密钥对这种东西没有具体的概念,直到大二上第一次创立了自己的GitHub仓库之后,才开始真正的使用
想要使用ssh,首先得创建密钥对
以下是创建密钥对的常见格式
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
-t rsa
:指定要生成的密钥类型为 RSA。-b 2048
:指定密钥的位数为 2048 位(可以根据需要调整位数)。-C "your_email@example.com"
:可选参数,用于添加注释,通常是您的电子邮件地址。
github给出的文档是
您可以在本地机器上生成一个新的SSH密钥。生成密钥后,您可以将公钥添加到GitHub.com上的帐户中,以启用通过SSH进行Git操作的身份验证。
**注意:**GitHub在2022年3月15日删除旧的、不安全的密钥类型,从而提高了安全性。
截至该日期,不再支持DSA密钥(ssh-dss
)。您无法在GitHub.com上将新的DSA密钥添加到您的个人帐户中。
2021年11月2日之前valid_after
的RSA密钥(ssh-rsa
)可以继续使用任何签名算法。在该日期之后生成的RSA密钥必须使用SHA-2签名算法。一些旧客户端可能需要升级才能使用SHA-2签名。
-
打开终端。
-
粘贴以下文本,将示例中使用的电子邮件替换为您的GitHub电子邮件地址。
ssh-keygen -t ed25519 -C "your_email@example.com"
**注意:**如果您使用的是不支持Ed25519算法的遗留系统,请使用:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这将创建一个新的SSH密钥,使用提供的电子邮件作为标签。
> Generating public/private ALGORITHM key pair.
当系统提示您“输入保存密钥的文件”时,您可以按Enter键接受默认文件位置。请注意,如果您之前创建了SSH密钥,ssh-keygen可能会要求您重写另一个密钥,在这种情况下,我们建议创建一个自定义命名的SSH密钥。为此,请键入默认文件位置,并将id_ALGORITHM替换为自定义密钥名称。
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
-
在提示符处,键入一个安全的密码。有关更多信息,请参阅“使用SSH密钥密码”。
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
ssh-agent
ssh-agent
是一个用于管理 SSH 私钥的程序,它可以帮助您在 SSH 连接时轻松地管理和使用私钥,而无需每次都输入密码。SSH Agent 会将您的私钥保存在内存中,并在需要时将其提供给 SSH 客户端进行身份验证。
以下是一些常见的用法和命令:
-
启动 SSH Agent:您可以在终端中运行以下命令来启动 SSH Agent:
eval $(ssh-agent)
这将启动 SSH Agent 并将相关环境变量添加到当前 shell 会话中。
-
添加私钥到 SSH Agent:一旦 SSH Agent 启动,您可以使用以下命令将私钥添加到代理中:
ssh-add ‘私钥的路径’
这将提示您输入私钥密码(如果有的话),然后将私钥添加到 SSH Agent 中。
-
列出已添加的密钥:您可以运行以下命令来列出当前 SSH Agent 中已添加的密钥:
ssh-add -l
-
关闭 SSH Agent:当您完成 SSH 会话时,您可以使用以下命令关闭 SSH Agent:
ssh-agent -k
通过使用 SSH Agent,您可以更加方便地管理和使用 SSH 密钥,避免重复输入密码以进行身份验证。请注意,为了安全起见,私钥应受到妥善保护,并且在不需要时应该及时从 SSH Agent 中移除。
可以输入
ssh -T user@host
来测试联通性