4

目前,每次我启动终端时,我都会收到以下提示:

最后登录时间:11 月 28 日星期一 21:32:16 在 ttys000

代理 pid 2733

输入 /Users/my_name/.ssh/id_rsa 的密码:

您能否指导我如何避免每次都输入密码?

4

3 回答 3

7

您可以将密码添加到钥匙串中:

ssh-add -K ~/.ssh/id_rsa

或者您可以将其添加到您的~/.ssh/config

Host *
UseKeychain yes
于 2018-07-04T06:27:56.593 回答
5

你可能写信给你的~/.bashrc台词

`eval ssh-agent`
ssh-add

或类似的东西。这意味着它将ssh-agent为您打开的每个外壳启动一个新外壳,这肯定不是您想要的。代理应该在您打开 Xsession ( ~/.xsession) 时启动,或者您应该在运行新代理之前检查代理是否正在运行:

[ -z $SSH_AUTH_SOCK ] && `eval ssh-agent` && ssh-add
于 2016-11-29T08:15:40.467 回答
2

您可以使用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 显示代理当前持有的身份。

于 2016-11-29T03:20:18.877 回答