第一次ubuntu wsl ssh远程登录各种报错+解决

首先将ssh默认的22端口改了,以防端口被占用冲突,这里我改为2222。(感觉这步其实可有可无)

sudo sed -i '/Port /c Port 2222' /etc/ssh/sshd_config

然后使用ssh指令尝试远程登录

ssh root@localhost -p 2222

报错1:Could not create directory ‘c:\users\\346\210\221/.ssh’.

尝试后发现地址可ping通
最终发现报错原因是因为Windows管理员账户名含有中文,改成英文就好。

Win10家庭版修改方法如下:(其他Windows版本修改管理员账户名较简单,有需要可google)
win10家庭版如何修改用户名对应的文件夹的名字(中文该成英文字符)
当然也可以重装系统来改管理员账户名,但是我个人偏好上面的方法。

修改后再次尝试远程登录

报错2:Could not load host key: /etc/ssh/ssh_host_rsa_key

解决方法:重新安装一遍ssh

apt remove openssh-server
apt install openssh-server

然后重启服务即可:

sudo service ssh restart

详见WSL的openssh-server使用报错:Could not load host key: /etc/ssh/ssh_host_rsa_key

报错3:Connection closed by 127.0.0.1 port 2222
报错4:ssh: connect to host localhost port 2222: Connection refused

多半是wsl没有启动ssh

sudo service ssh restart

已经可以输密码了

root@localhost’s password:

输完密码回车后报错

报错5:Permission denied, please try again.

有2种可能:

报错原因1:密码不正确,或从来没设置wsl密码
分析:你密码记错了 / Ubuntu 的默认 root 密码是随机的,即每次开机都有一个新的 root 密码。
解决办法:
输入命令

sudo passwd

以修改当前用户的密码。
然后输入当前用户的密码,终端提示我们输入新的密码并确认。

或者输入命令

sudo  passwd root

以修改root的密码

报错原因2:没有开启密码和密钥登录,或没有开启允许root认证登录

解决办法:
编辑sshd配置文件

sudo vim /etc/ssh/sshd_config

着重找到以下几项进行修改:

  • PermitRootLogin yes #允许root认证登录
  • PasswordAuthentication yes #允许密码认证
  • RSAAuthentication yes #秘钥认证
  • PubkeyAuthentication yes

该方法来源:Linux ssh服务开启秘钥和密码认证

(该配置文件详解见 SSH远程登录配置文件sshd_config详解

远程登录成功

C:\Users\khamrranirr>ssh root@localhost -p 2222
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.4.0-18362-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue Nov  3 14:45:36 CST 2020

  System load:    0.52      Memory usage: 57%   Processes:       9
  Usage of /home: unknown   Swap usage:   2%    Users logged in: 0

  => There were exceptions while processing one or more plugins. See
     /var/log/landscape/sysinfo.log for more information.

0 packages can be updated.
0 updates are security updates.


Last login: Thu Sep 24 16:07:38 2020 from ::1
root@DESKTOP-R2EP43N:~#
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows Subsystem for Linux 2(WSL2)是Windows 10操作系统中的一个功能,它允许用户在Windows中运行Linux操作系统。对于那些熟悉Linux的开发人员来说,WSL2是一种非常方便的方式来使用他们所熟悉的命令行界面和工具。 在WSL2中,用户可以使用多种方法进行远程访问。其中,其中之一是通过ssh远程登录SSH(Secure Shell)是一种安全的网络协议,允许用户在不安全的网络上进行加密通信。通过ssh远程登录WSL2,用户可以像在本地一样使用WSL2,同时还可以利用Windows的GUI界面。 要使用ssh远程登录WSL2,用户需要先启用ssh服务器。在Windows PowerShell或命令提示符中,可以使用以下命令来启动ssh服务器: ``` sudo apt update sudo apt install openssh-server sudo service ssh start ``` 安装和启动过程完成后,可以使用ssh客户端连接到WSL2。在本地电脑上,打开一个终端窗口并输入以下命令: ``` ssh [username]@[IP address of WSL2] ``` 其中,[username]是WSL2中的用户名,[IP address of WSL2]是WSL2的IP地址。默认情况下,WSL2会动态分配IP地址,可以使用以下命令在WSL2中查找其IP地址: ``` ip addr show eth0 | grep inet | awk '{print $2}' | cut -d / -f 1 ``` 使用这种方法进行远程访问,需要确保WSL2和Windows的防火墙设置正确。在Windows防火墙中,需要允许ssh流量通过。在WSL2中,需要允许ssh服务器通过WSL2的防火墙。可以使用以下命令配置WSL2防火墙: ``` sudo ufw allow ssh ``` 使用ssh远程登录WSL2时,还需要注意ssh客户端和服务端之间的证书问题。如果出现证书错误,需要检查证书是否正确配置。 总之,使用ssh远程登录WSL2是一种方便的方式,可让用户像在本地一样使用WSL2。通过配置Windows和WSL2的防火墙,并确保证书正确配置,用户可以安全、可靠地进行远程访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值