我已经开始使用 Windows 10 进行 Rails 开发,并使用 Linux 子系统进行开发。
最近,我在从终端通过 SSH 连接到远程计算机时遇到了一个问题。公钥已在远程计算机上可用。
根据我在网上找到的资源进行一些故障排除后,我注意到 SSH 代理没有运行,因为ssh-add -l
命令没有提供预期的输出。
为了使 SSH 代理在启动时启动,我按照以下说明进行操作https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch并且它运行完美。
现在 SSH 代理自动启动,我使用命令 .. 向其中添加了我的身份文件ssh-add path/to/identity/file
。
请注意,生成 SSH 密钥时我使用了自定义文件名id_work_gmail和id_工作_gmail.pub。因此我必须使用上述命令将其添加到代理。
完成后,我可以通过 SSH 成功连接到远程机器。
在这之前一切都很顺利。然而,当我关闭每一个康德Ubuntu Bash 控制台并启动一个新的ssh-add -l
通知该代理人没有身份。。所以我不得不再次将我的自定义名称身份文件添加到代理中。
所以每次我关闭每个 Ubuntu Bash 控制台并启动一个新控制台时,我都需要这样做。
我的问题是,我们如何才能使该ssh-add path/to/identity/file/custom-named
操作像在实际的 Ubuntu 机器上一样持久。我很好奇,是什么让它在 Ubuntu 机器上成为一次性活动,而在 Windows 10 Linux 子系统上成为重复活动。
谢谢。
答案1
并且很好奇,是什么使得它成为 Ubuntu 机器上的一次性活动和 Windows 10 Linux 子系统上的重复活动。
通常,它ssh-agent
会在您的会话中运行,因此它不会在您从 Linux 中的帐户注销之前关闭。
如果您从 WLS 使用它并关闭(可能的)最后一个窗口,它会进行合理的清理并可能停止您的操作ssh-agent
,这对于从内存中删除敏感数据是合理且安全的。
我的问题是如何使 ssh-add path/to/identity/file/custom-named 操作持久,就像它在实际的 Ubuntu 机器上发生的那样。
只需不要关闭该窗口(或让一个窗口在后台打开...这也可能有帮助)。或者配置ssh
为在您第一次使用密钥时自动执行该步骤。只需写信给您的~/.ssh/config
Host server-you-are-connecting.to
IdentityFile path/to/identity/file/custom-named
AddKeysToAgent yes