1

我已经按照 GitHub 文档为我的笔记本电脑设置了 ssh 密钥。然后我在推或拉时遇到了麻烦,因为我每次都必须写密码。所以,我关注了这个GitHub 文档。将以下代码添加到我的 .bash_profile

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

现在每次开机都要写GitHub pass。有什么办法可以让我不必在每次重新启动时都写那个密码?

4

1 回答 1

0

阅读man ssh-add时,您可以尝试设置SSH_ASKPASS,如此处所述
在您的脚本中替换ssh-add为:

cat ~/.ssh/id_rsa | SSH_ASKPASS=~/.print_ssh_password ssh-add -

这假设您已将私钥密码存储在 中%USERPROFILE%\.print_ssh_password,这并不理想,但至少在您自己的 Windows 配置文件文件夹中受到保护。

当然,另一种方法是删除您当前现有私钥的密码(同样不理想)。
那就没有了ssh-add


另一个明显的选择是在生成您的私钥时首先没有密码。

您还可以删除现有私钥的密码。

于 2021-11-29T00:21:33.997 回答