生成新 SSH 密钥并添加到 ssh-agent
检查现有 SSH 密钥后,您可以生成新 SSH 密钥以用于身份验证,然后将其添加到 ssh-agent。
如果您还没有 SSH 密钥,则必须生成新 SSH 密钥。 如果您不确定是否已有 SSH 密钥,请检查现有密钥。
如果不想在每次使用 SSH 密钥时重新输入密码,您可以将密钥添加到 SSH 代理,让它管理您的 SSH 密钥并记住您的密码。
生成新 SSH 密钥
-
Open TerminalTerminalGit Bashthe terminal.
-
粘贴下面的文本(替换为您的 GitHub Enterprise 电子邮件地址)。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这将创建以所提供的电子邮件地址为标签的新 SSH 密钥。
> Generating public/private rsa key pair.
-
提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,按 Enter 键。 这将接受默认文件位置。
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
> Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
> Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
> Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
-
在提示时输入安全密码。 更多信息请参阅“使用 SSH 密钥密码”。
> Enter passphrase (empty for no passphrase): [Type a passphrase]> Enter same passphrase again: [Type passphrase again]
将 SSH 密钥添加到 ssh-agent
将新 SSH 密钥添加到 ssh-agent 以管理密钥之前,应检查现有 SSH 密钥并生成新 SSH 密钥。 When adding your SSH key to the agent, use the default macOS ssh-add
command, and not an application installed by macports, homebrew, or some other external source.
-
Start the ssh-agent in the background.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
如果您使用的是 macOS Sierra 10.12.2 或更高版本,则需要修改
~/.ssh/config
文件以自动将密钥加载到 ssh-agent 中并在密钥链中存储密码。Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa
-
将 SSH 私钥添加到 ssh-agent 并将密码存储在密钥链中。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。
$ ssh-add -K ~/.ssh/id_rsa
注:
-K
选项位于 Apple 的ssh-add
标准版本中,当您将 ssh 密钥添加到 ssh-agent 时,它会将密码存储在您的密钥链中。如果您没有安装 Apple 的标准版本,可能会收到错误消息。 有关解决此错误的详细信息,请参阅“错误:ssh-add:非法选项 -- K”。
If you have GitHub Desktop installed, you can use it to clone repositories and not deal with SSH keys. It also comes with the Git Bash tool, which is the preferred way of running git
commands on Windows.
-
确保 ssh-agent 正在运行:
- 如果您使用随 GitHub Desktop 一起安装的 Git Shell,则 ssh-agent 应该正在运行。
-
如果您使用的是其他终端提示符,例如 Git for Windows,您可以根据“使用 SSH 密钥密码”中的“自动启动 ssh-agent”说明进行操作,或者手动启动它:
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566
-
将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。
$ ssh-add ~/.ssh/id_rsa
-
Start the ssh-agent in the background.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。
$ ssh-add ~/.ssh/id_rsa
-
Start the ssh-agent in the background.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
将 SSH 私钥添加到 ssh-agent。 如果您创建了不同名称的密钥,或者您要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为您的私钥文件的名称。
$ ssh-add ~/.ssh/id_rsa
延伸阅读
- "关于 SSH"
- "使用 SSH 密钥密码"