目前,每次我启动终端时,我都会收到以下提示:
最后登录时间:11 月 28 日星期一 21:32:16 在 ttys000
代理 pid 2733
输入 /Users/my_name/.ssh/id_rsa 的密码:
您能否指导我如何避免每次都输入密码?
目前,每次我启动终端时,我都会收到以下提示:
最后登录时间:11 月 28 日星期一 21:32:16 在 ttys000
代理 pid 2733
输入 /Users/my_name/.ssh/id_rsa 的密码:
您能否指导我如何避免每次都输入密码?
您可以将密码添加到钥匙串中:
ssh-add -K ~/.ssh/id_rsa
或者您可以将其添加到您的~/.ssh/config
:
Host *
UseKeychain yes
你可能写信给你的~/.bashrc
台词
`eval ssh-agent`
ssh-add
或类似的东西。这意味着它将ssh-agent
为您打开的每个外壳启动一个新外壳,这肯定不是您想要的。代理应该在您打开 Xsession ( ~/.xsession
) 时启动,或者您应该在运行新代理之前检查代理是否正在运行:
[ -z $SSH_AUTH_SOCK ] && `eval ssh-agent` && ssh-add
您可以使用ssh-agent
. 手册页说:
ssh-agent 是一个保存用于公钥认证的私钥的程序(RSA、DSA、ECDSA、Ed25519)。ssh-agent 通常在 X 会话或登录会话开始时启动,所有其他窗口或程序都作为 ssh-agent 程序的客户端启动。通过使用环境变量,可以定位代理并在使用 ssh(1) 登录到其他机器时自动用于身份验证。
在进一步阅读中,您可以看到:
代理最初没有任何私钥。使用 ssh-add(1) 添加密钥。当不带参数执行时,ssh-add(1) 添加文件 ~/.ssh/id_rsa、~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ed25519 和 ~/.ssh/identity。 如果身份有密码短语,ssh-add(1) 会在终端上询问是否有密码短语,或者 如果在 X11 下运行,则从小型 X11 程序询问密码短语。如果这两种情况都不是,则身份验证将失败。然后它将身份发送给代理。代理中可以存储多个身份;代理可以自动使用这些身份中的任何一个。ssh-add -l 显示代理当前持有的身份。