使用 xshell 登陆 Windows 的 linux 子系统

1 配置 SSH Server

# 卸载自带的 ssh
sudo apt-get remove openssh-server

# 安装 ssh
sudo apt-get install openssh-server

# 编辑配置文件
vim /etc/ssh/sshd_config

Port 2222 # 修改端口号,避免和 Windows ssh 服务端口冲突
UsePrivilegeSeparation yes # 使用密码登陆
PermitRootLogin yes # 容许使用 root 用户登陆


# 重启 ssh 服务
sudo service ssh --full-restart

2 使用 xshell 登陆

链接配置

设置用户名和密码

设置用户名和密码

成功登陆

3 Windows 配置开机自启动

3.1 windows 计划任务配置

能够使用windows自带的定时任务计划上添加开机启动Ubuntu ssh服务的任务。
搜索“任务计划程序”,操做-- 建立基本任务:linux

  • 触发器:当计算机启动时
  • 操做:启动程序
  • 程序名:bash.exe(默认打开的文件夹搜索便可)
  • 参数为:-c "sudo -u root /usr/sbin/sshd",开启 linux 子系统的 ssh 服务
  • 选择“点击完成打开属性页”按钮,点击完成,打开属性页
  • 在属性页选择“使用最高权限运行”

3.2 测试计划任务命令

管理员身份打开 DOS 窗口shell

cd C:\WINDOWS\system32 # 进入到 bash.exe 所在路径
bash.exe -c "sudo -u root /usr/sbin/sshd" # 输入如下命令,回车

//  弹出以下提示
[sudo] password for user1:

若是上述测试过程出现输入密码的弹窗,就须要为 user1 用户进行后续配置。vim

3.3 linux 权限配置

配置完计划任务,执行时会由于 sudo root 要求输入密码,但由于任务自启动,不能填充密码。所以,咱们能够针对启动用户设置使用 sudo 时无需密码。windows

只需修改 /etc/sudoers 文件便可。bash

vim /etc/sudoers
\# 添加如下
user1 ALL=(ALL) NOPASSWD: ALL # user1 用户执行 sudo 时无需密码

再使用 3.2 的步骤测试,发现已经没有输入密码的提示了。ssh

4 计划任务测试

配置完成后,咱们能够先关闭 linux 的 ssh 服务测试

sudo service ssh stop # 关闭 ssh 服务
ps aux | grep ssh # 查看 ssh 服务是否已关闭。只有 --color=auto 这一行。若是有其它行,使用 kill 命令关闭

回到任务计划程序页面.
任务计划程序列表spa

找到创建的计划任务。右键点击,手动运行,查看运行结果。若是“上次运行结果列”出现“操做成功完成”提示,就表示咱们的计划任务配置成功啦!rest