使用xshell登录ubuntu on windows(wsl)

96
郝开心信札
2017.12.23 23:38* 字数 642

Win 10可以使用原生的Linux了,但是界面真的是超级难用,所以想配置xhsell登录。网上的教程比较零散,这里记录下使用xshell登录bash的经验。

准备

  • Xshell
  • Ubuntu on windows

配置ssh server

自带的ssh server不好用,先卸载再安装即可。

// 卸载
sudo apt-get remove openssh-server
// 安装
sudo apt-get install openssh-server
// 编辑配置文件
// vim /etc/ssh/sshd_config
    
    Port 36000  # 默认的是22,但是windows有自己的ssh服务用的也是22端口,修改一下
    UsePrivilegeSeparation no

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

配置中有一项PasswordAuthentication, 改为yes可以使用密码登录,这里我们使用ssh秘钥对登录,所以使用默认no

生成公钥秘钥

生成秘钥、私钥

xshell > 工具 > 新建用户秘钥生成向导 > 下一步,具体如图。

第一步

第二步,默认即可
第三步:命名密钥,并输入密码加密私钥
第四步:生成密钥成功,这里展示的是公钥,点击保存为文件,,比如`d:\download\key.pub`

上传公钥到server

目标地址是/root/.ssh/authorized_keys文件,没有则新建

    cd /root
    mkdir .ssh
    mv /mnt/d/download/key.pub /root/.ssh
    cat key.pub > authorized_keys

这里注意网上很多例子是用xshell先密码登录,然后rz命令将公钥文件传输至服务器,但是windows的Ubuntu可以在硬盘找到,直接cp或mv就很方便,只要知道D盘加载在/mnt/d目录下,其他类似

配置xshell

xshell新建会话,简单配置下。

  1. 名称随便取,主机地址使用127.0.0.1, 端口号与第一步配置server时一致,这里用36000

    新建会话

  2. 连接-用户身份验证,选择 public key,用户名为 root (因为/root/.ssh),私钥选择第一步生成的私钥名称,密码是当时输入的密码,点击确认。

    配置密钥登录

点击连接,大功告成。


登录成功界面

彩蛋:配置ssh服务开机启动

bash必须得一直开着,否则ssh服务就被关闭了

可以使用windows自带的定时任务计划上添加开机启动Ubuntu ssh服务的任务。
搜索“任务计划程序”,操作-- 创建基本任务

  • 触发器:当计算机启动时
  • 操作:启动程序
  • 程序名:bash.exe
  • 参数为-c \"sudo /usr/sbin/sshd -D\"" 意思是打开bash,执行sshd命令开启ssh服务
  • 选择“点击完成打开属性页”按钮,点击完成,打开属性页
  • 在属性页选择“使用最高权限运行”,避免错误。

以上配置后,每次开机都会自动打开bash,可以直接使用xshell连接你的ubuntu on Linux

参考:

  1. 通过 xshell 连接 ubuntu on windows(WSL)
  2. Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录
  3. How to run sshd as a windows service ? #612
工具
Web note ad 1