我正在使用最近在 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 ~/.ssh
并chmod 600 authorized_keys