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