最近在使用一段时间的WSL Ubuntu后发现无法使用ssh,于是配置ssh生效并设置开机启动ssh服务。
1、配置sshd_config文件
修改这几处。端口号不要设置为默认的22,会与windows冲突。PermitRootLogin需要设置为yes,如果使用root用户登陆的话,同时PermitRootLogin prohibit-password一定不要启用。Ubuntu装好后只有一个root超级用户,新增一个普通用户来使用ssh服务才是比较安全的。
Port 2222
ListenAddress 0.0.0.0
PermitRootLogin yes
PasswordAuthentication yes
2、开启密钥并重启ssh服务
service ssh restart发现有个错误:sshd: no hostkeys available -- exiting. 没有hostkeys,那么就需要生成hostkeys。关于密钥方面的知识开源参考以往的文章-Linux怎么远程执行指令呢-SSH秘钥。
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
再次service ssh restart重启成功。
3、查看进程存在并本机ssh登陆成功,注意的是ssh端口一定要选择你设置的端口2222。
4、局域网远程登陆
笔者在手机上使用juiceSSH远程可以ssh连接到WSL Ubuntu。如果连接失败就是防火墙的设置了,需要开启设置端口2222的入站规则。端口-->TCP-->特点本地端口2222-->允许连接-->下一步确定;设置完成。
5、添加开机启动ssh服务
windows定时计划任务中选择开机启动C:\Windows\System32\bash.exe -c "service ssh start" 。
同时发现C:\Windows\System32目录下的bash.exe是windows和wsl之间的桥梁,可以在cmd里面执行wsl中的命令。
网友评论