昨天我才知道原来Gitpush是可以不需要输入密码的。。。之前因为机器上没有配置好。这大半年来都是手动输入密码。特别是我的Hexo需要上传三个Git服务器(Github、Coding、腾讯云服务器),每次上传都需要输入三遍密码(吐了)。

如果真的又和我一样的人的话可以根据GitHub的官方教程来进行操作。

参考文档:立即进入

生成新 SSH 密钥

打开 Terminal(终端)。

粘贴下面的文本(替换为你的 GitHub 电子邮件地址)。

1
$ 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]

在提示时输入安全密码。 更多信息请参阅“使用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 密钥。 将 SSH 密钥添加到该代理时,应使用默认的 macOS ssh-add 命令,而不是使用通过 macports, homebrew 或某些其他外部来源安装的应用程序。

在后台启动 ssh 代理。

1
$ eval "$(ssh-agent -s)"

Agent pid 59566

如果你使用的是 macOS Sierra 10.12.2 或更高版本,则需要修改 ~/.ssh/config 文件以自动将密钥加载到 ssh-agent 中并在密钥链中存储密码。
首先,检查你的 ~/.ssh/config 文件是否在默认位置。

1
$ open ~/.ssh/config

The file /Users/you/.ssh/config does not exist.

如果文件不存在,请创建该文件。

1
$ touch ~/.ssh/config

打开 ~/.ssh/config 文件,然后修改该文件,如果未使用 id_rsa 键的默认位置和名称,则替换 ~/.ssh/id_rsa。

1
2
3
4
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa

将 SSH 私钥添加到 ssh-agent 并将密码存储在密钥链中。 如果你创建了不同名称的密钥,或者你要添加不同名称的现有密钥,请将命令中的 id_rsa 替换为你的私钥文件的名称。

1
$ ssh-add -K ~/.ssh/id_rsa

注:-K 选项位于 Apple 的 ssh-add 标准版本中,当你将 ssh 密钥添加到 ssh-agent 时,它会将密码存储在你的密钥链中。
如果你没有安装 Apple 的标准版本,可能会收到错误消息。 有关解决此错误的详细信息,请参阅“错误:ssh-add:非法选项 – K”。

将 SSH 密钥添加到 GitHub 帐户