使用ssh密钥,如果有人可以访问您的计算机,他们也可以访问使用该密钥的每个系统。为了保证安全,可以向ssh密钥中添加密码。通过ssh代理来安全地保存您的密码,这样就不必重新输入它。
1.添加或更改秘钥短语
可以通过键入以下命令来更改现有私钥的密码,而不必重新生成密钥对:
$ ssh-keygen -p
如果您的密钥已经有一个密码,则在您可以更改为新密码之前,系统会提示您输入密码。否则,您可以添加新的密码到秘钥中。会出现如下提示内容,请按照[]
中的内容操作:
Start the SSH key creation process
Enter file in which the key is (/Users/you/.ssh/id_rsa): [回车]
Key has comment '/Users/you/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): [输入您的密码]
Enter same passphrase again: [再次输入密码]
Your identification has been saved with the new passphrase.
2.在git上自动启动ssh代理
- Github桌面应用程序用户:则请忽略本节操作,因为Github桌面自动为您启动SSH代理。
- Git shell用户:请按照以下步骤自动运行SSH代理。
首先,将下面的内容复制到粘贴到您的电脑上的~/.profile
或~/.bashrc
文件中,即Administrator
目录下的.profile
文件中。若不存在该,则新建。这里,~
代表当前用户目录,默认是Administrator
。
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
如果您的私钥不存储在默认位置之一(~/.ssh/id_rsa
或~/.ssh/id_dsa
)中,则需要告诉您的SSH身份验证代理在哪里找到它。要向SSH代理添加密钥,请键入ssh-add ~/path/to/my_key
。有关更多信息,请参见“生成一个新的SSH密钥并将其添加到SSH代理”。
这里,如果此时我们重新打开一个git bash,可以看到: