qaz*_*wsx 3 bash ssh ssh-agent iterm iterm2
我在我的 .bashrc 中添加以下内容
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
因此,当我在 shell/终端应用程序(macOS 上的 iTerm2)中打开一个新选项卡时,它会使用 SSH 代理自动添加 SSH 身份,而我不需要在该选项卡中手动输入 SSH 密码。但是如果我有很多选项卡,它似乎不必要地有很多 ssh-agent 正在运行的实例。
有没有更好的方法来实现这一目标?
您的问题似乎是您在每次 shell 初始化(可能在您的.bash_profile
或 中.bashrc
)开始对代理进行新的调用。这不是必需的,因此您应该找到那些 ssh-agent 调用并删除它们。
在 OSX 上,通常会在启动时为您的桌面会话启动一个 ssh-agent。例如:
myhost:~)-> ps -ef | grep ssh-agent
501 986 1 0 10:18AM ?? 0:00.14 /usr/bin/ssh-agent -l
501 2126 736 0 5:30PM ttys007 0:00.00 grep ssh-agent
Run Code Online (Sandbox Code Playgroud)
为了访问它,您需要找出它正在侦听的套接字的位置,通常在/tmp/com.apple.launchd.<blah>/Listeners
(where <blah>
is some random alpha-numeric identifier. 可能有几个,但您想要一个在其中具有“侦听器”套接字的)。
一旦找到它的套接字,就可以使用标准 SSH 环境变量SSH_AUTH_SOCK
. 例如:
myhost:~)-> export SSH_AUTH_SOCK=/tmp/com.apple.launchd.1h2j3k4l5/Listeners
myhost:~)-> ssh-add ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: <typing_here>
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)
一旦将其导出到 shell,此时就可以使用该ssh-add
命令提供他或她的密钥密码并向代理添加密钥。您还可以在 ssh-agent 的手册页中查看您可能想要探索的其他选项。
归档时间: |
|
查看次数: |
2695 次 |
最近记录: |