Skip to content

Instantly share code, notes, and snippets.

@dot-osk
Created December 10, 2017 12:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dot-osk/540f690364a11c156700018c1d9b9260 to your computer and use it in GitHub Desktop.
Save dot-osk/540f690364a11c156700018c1d9b9260 to your computer and use it in GitHub Desktop.

Linux (WSL) 设置

  1. 修改sshd 监听端口,避免和windows 10的22冲突

  2. 部分distro需要重新生成host证书

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
  1. 创建一个shell脚本
cat << EOF > /opt/bin/lxss-ssh
#!/bin/bash

# ubuntu不需要手动mount也能正常使用,一些distro需要
mount -t tmpfs vartmp /var/run
mkdir /var/run/sshd -p
/usr/sbin/sshd

while true
do
    echo "Linux sub-system sshd is running, do not close window!"
    read TEMP_KEEP_SESS
done

EOF
chmod 755 /opt/bin/lxss-ssh
  1. 安装sudo, 配置sudo免密码
# EDITOR=nano visudo -f /etc/sudoers.d/lxss-ssh
EDITOR=nano sudoedit /etc/sudoers.d/lxss-ssh # <== opensuse
# 添加以下内容
LXSS用户名 ALL=(ALL) NOPASSWD: /opt/bin/lxss-ssh

Windows 设置

  1. 创建一个.vbs脚本
set shell = CreateObject("Wscript.Shell")
shell.run "bash.exe -c ""sudo /opt/bin/lxss-ssh""",vbhide

只需要运行这个脚本即可一直在后台运行WSL的ssh进程了,没有cmd窗口显示,screen,ssh等暂时正常.

将这个脚本或其快捷方式放入

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

即可实现用户登陆自动启动lxss的sshd服务

连接

ssh USERNAME@127.0.0.1 -P 2222

关闭

任务管理器找到 bash.exe 结束任务即可,注意不是bash,是bash.exe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment