请帮助我了解如何在 WSL 下的 Ubuntu 上安装 SSH 钥匙串,以便我能够配置它.ssh/config
以使用它。
我正在参加一些在线培训,并且我尝试像讲师(使用 Metatron CLI)一样设置我的配置文件Usekeychain
,但它不承认这是一个有效的设置:
Host*
AddKeysToAgent Yes
UseKeychain Yes
IdentityFile ~/.ssh/[his githubfile]
但当我尝试登录我的服务器时,它说UseKeychain is not a command
。从那时起,我一直在尝试寻找如何将我的钥匙添加到我的钥匙串以及如何设置我的配置文件。
答案1
部分至少,您的问题之一是,这UseKeychain
是一个特定于 MacOS 的配置选项,指示它将解锁的密钥添加到 MacOS 钥匙串(该操作系统的一部分,可以安全地存储它)。所以我们可以假设您的老师使用的是 Mac。听起来 Mac 版本的 ssh 将读取操作系统钥匙串,该钥匙串通常在整个操作系统中首次使用时解锁。我的理解是,Ubuntu 下有等效项,例如 Gnome Keyring,但这在 WSL 下不起作用。
因此,我们首先要确定您至少需要删除 Ubuntu 下特定于 MacOS 的配置选项。
如果您的老师向学生提供该配置文件作为示例,他们确实应该正确执行以下操作:
Host*
IgnoreUnknown UseKeychain
AddKeysToAgent Yes
UseKeychain Yes
IdentityFile ~/.ssh/[his githubfile]
这样它既可以在 Mac 上运行,也可以在世界其他地区(90% 以上)运行。
在 WSL Ubuntu 下,你将要需要在每个会话中至少输入一次密码才能将其添加到ssh-agent
。如果您运行多个 shell 实例,则通常需要ssh-agent
在每个 shell 中进行一次新的调用。
或者,您可以安装Funtoo 钥匙扣它可以(更)轻松地在每个 shell 实例中建立连接ssh-agent
。这样,只要 WSL 实例正常运行,您就只需要输入一次密码。
sudo apt-get install keychain
并添加类似下面的内容到你的~/.bashrc
:
eval `keychain --eval --agents ssh id_rsa`
查看官方钥匙扣网站了解完整说明。
请注意,一旦 WSL Ubuntu 实例终止(wsl -l -v
显示“已停止”),则下次使用时需要再次输入密码。
答案2
我假设您尝试创建密钥对并将其添加到 ssh-agent 中,如果是,以下是您的说明。如果不是,我们都需要更多信息。
最简单的说明。
- cd ~/.ssh
- ssh-keygen(回答相应的问题)现在我们需要将密钥添加到 ssh-agent
- 评估
ssh-agent -s
- ssh-添加你的密钥名称
现在您有一个系统可以使用的密钥。将其导出到您的远程系统并设置您的配置文件