为了从Windows实现到WSL的免密登录,我们可以使用SSH的公钥身份验证。这涉及到在Windows上生成SSH密钥对,并将公钥放入WSL的authorized_keys
文件中。
具体步骤如下:
-
在Windows中生成SSH密钥对 (如果还没有):
如果已经有OpenSSH for Windows客户端,打开命令提示符或PowerShell,然后输入:
ssh-keygen
这将在
C:\Users\[YourUsername]\.ssh\
目录下生成id_rsa
(私钥) 和id_rsa.pub
(公钥)。 -
复制公钥:
打开
C:\Users\[YourUsername]\.ssh\id_rsa.pub
文件,并复制内容。 -
在WSL中创建或添加到authorized_keys:
打开WSL,并确保有一个
~/.ssh
目录。如果没有,请创建它:mkdir -p ~/.ssh chmod 700 ~/.ssh
然后,将刚才复制的公钥添加到
~/.ssh/authorized_keys
文件中:echo "PASTE_YOUR_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
请替换
PASTE_YOUR_PUBLIC_KEY_HERE
为刚才从Windows中复制的公钥内容。最后,确保
authorized_keys
文件的权限设置得当:chmod 600 ~/.ssh/authorized_keys
-
在WSL中启动SSH服务器:
如果在WSL上还没有SSH服务器,可以安装它。对于Ubuntu或Debian系发行版:
sudo apt update sudo apt install openssh-server
然后,启动SSH服务器:
sudo service ssh start
-
从Windows连接到WSL:
使用SSH从命令提示符或PowerShell连接到WSL:
ssh [WSL_USERNAME]@localhost
由于已经设置了公钥身份验证,此时,应该可以无密码登录到WSL。
请注意,为了长期运行SSH服务器,可能需要在WSL中配置它在启动时自动启动。这需要对WSL的初始化系统进行额外的配置,具体取决于WSL发行版。