远程访问机器时 SSH 代理未加载

远程访问机器时 SSH 代理未加载

我有这个用户帐户,并已正确配置它来管理我的密钥以便通过 ssh 连接到其他实例。

当我坐在机器前时,我的配置按照我的 ~/.ssh/config 文件中所述的方式工作:

一部分:

Host vm0-test
   User test
   HostName vm0.test.lab
   IdentityFile ~/.ssh/vm

Host vm1-test
   User test
   HostName vm1.test.lab
   IdentityFile ~/.ssh/vm

Host vm2-test
   User test
   HostName vm2.test.lab
   IdentityFile ~/.ssh/vm

但是每次我远程 ssh 到这台机器时,我都需要手动执行以下步骤:

remote $ eval `ssh-agent`
remote $ ssh-add ~/.ssh/vm

每次我 ssh 时如何强制它加载我的本地配置?

答案1

您的config文件并未启动代理。它只是提供了三个别名,并分配了要使用的密钥文件。如果此密钥文件 ( ~/.ssh/vm) 受密码保护(理应如此)且没有代理正在运行,则每次使用密钥时都必须输入此密码。这就是我们使用代理的原因。

您的代理必须在其他地方启动。如果它未在远程登录时启动,则它可能会在图形会话(某些关键服务)启动时启动。这就是为什么您必须手动启动它以进行远程 ssh。

所以,你可以做什么?

  1. 找到 ssh-agent 启动的位置,以了解为什么它不能完成远程会话。
  2. 从内部启动 ssh-agent .profile,例如查看

如果您.profile正在检查已运行的代理,它不会干扰图形会话的代理。这适用于本地图形会话和远程文本会话。

相关内容