如何通过新的 Windows 10 Linux bash 使用我的 SSH 密钥对连接到远程服务器?

如何通过新的 Windows 10 Linux bash 使用我的 SSH 密钥对连接到远程服务器?

我正在使用最近在 Windows 10 周年更新中推出的新的 Linux Bash Shell。

如果我没记错的话,这个 bash 在 Windows 上带有一个 Linux 挂载点(/mnt/c/Users/[username]),当你启动 Linux bash 时,它用作 Linux 用户主目录。

但即使我已将 SSH 密钥对放在现有的 .ssh 用户文件夹 ( /mnt/c/Users/[username]/.ssh) 中,当通过 SSH 连接到远程服务器时,它仍无法被识别 ( )。它总是要求输入用户名密码,而不是使用公钥进行身份验证,我的其他客户端也是如此。ssh [email protected]

此外,公钥已经存在于authorized_keys远程服务器的文件中。

我是否遗漏了什么?

答案1

您可以通过以下路径从 Windows 10 访问您的 bash 配置文件:

%USERPROFILE%\AppData\Local\lxss\home\[bash 用户名]

您必须输入您的 SSH 密钥对

%USERPROFILE%\AppData\Local\lxss\home\[bash 用户名]\.ssh

并且不要忘记 id_rsa 的权限。它应该通过运行(在 bash 中)设置为 600

cd ~/.ssh; chmod 600 id_rsa

答案2

bash 中的主目录与 Windows 用户文件夹的挂载点不同(/mnt/c/Users/[username])。它将采用与 Ubuntu 相同的格式:/home/username

你可以通过运行来找到你的位置echo $HOME。例如我的是/home/john

我可以确认添加一个.ssh文件夹并将您的公钥(通常id_rsa.pub)复制到authorized_keys使用命令cat id_rsa.pub > authorized_keys,允许我成功连接到我的 SSH 服务器,这仅仅是密钥认证。

应将权限authorized_keys设置为 600(仅限所有者读取和写入),方法是运行cd ~/.sshchmod 600 authorized_keys

相关内容