Win10使用SSH反向隧道(端口转发)连接远程桌面
应用场景:
如果你有Linux云主机(腾讯、华为等),且公司有一台只有内网IP (或动态IP) 的Win10工作机;你计划在家里工作时,通过家里的电脑连接公司的工作机 (且不想使用类似Teamviewer这样的远程控制软件)的话,本文适合你。
总体目标:
Win10下使用SSH反向隧道(端口转发)连接远程桌面,并作为服务自启动(不用安装Cygwin)
总体说明:
(1)内网计算机A(Win10)中, 需要如下软件的文件:Cygwin64和openssh,autossh组件
(2)外网计算机B(Linux)若为云主机(例如华为云),需要打开相应端口(例如33389等)
实现方法:
1. 公网主机B(Linux)的配置
vim /etc/ssh/sshd_config
添加
GatewayPorts yes
这句话的意思是监听端口可以绑定到任意其他IP,不然只有本机127.0.0.1可以访问
重启一下ssdh服务
sudo service sshd restart
特别提醒:
如果是一些供应商的云主机,记得要去安全策略组那里开放33389端口,不然怎么样都是访问不了的.
2. 内网计算机A(Win10)中下载安装Cygwin
Cygwin下载地址: http://www.cygwin.com/
默认的Cygwin没有安装ssh,所以重新运行http://www.cygwin.com/setup.exe,
在Select Packages的时候,在search输入ssh,选择 openssh和autossh
openssh:The OpenSSH server and client programs
autossh
3. 内网计算机A(Win10)的配置(文件id_rsa的获取)
内网计算机A(Win10)中打开cygwin控制台并输入(按提示输入外网计算机B的root账号的密码)
cd ~
mkdir -p .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen
ssh-copy-id root@121.36.163.25
配置说明:
注意换成你自己的IP, 执行后会提示输入主机B的密码(要注意这里),
执行完毕之后,我们登录到B,就发现 ~/.ssh/authorized_keys 里面就多了A的SSH公钥了,成功建立SSH认证.
这个步骤主要是完成了从机子A到B的ssh的免密登录,具体可以看~/.ssh/下面的一些密钥更改情况
用root登陆121.36.163.25主机,
这下应该可以免密码 ssh 得进去
ssh root@121.36.163.25
ls ~/.ssh/
会有文件
authorized_keys
4. 内网计算机A(Win10)的配置(建立反向隧道)
(1) run.bat
------------------------------------------
@echo off
::setting
set HOST="121.36.163.25"
set KEY_FILE="id_rsa"
set MONITOR_PORT=33389
set LOCAL_PORT=3389
set AUTOSSH_PATH=./ssh.exe
ssh.exe -o ServerAliveInterval=180 -i %KEY_FILE% root@%HOST% -p 22 -R %MONITOR_PORT%:localhost:%LOCAL_PORT% -fN
------------------------------------------
(2) 使用nssm.exe将run.bat加为Windows服务。具体过程为:
nssm.exe下载: https://nssm.cc/download
管理员运行CMD,定位到nssm.exe目录,输入
nssm install autossh
后弹出对话框,
选择run.bat,并输入服务名称 autossh
即可建立windows服务.
(CMD/services.msc查看并启动autossh服务)
#
若删除服务可用 (以管理员运行CMD):
sc delete autossh
5. 其他可联网Windows机器上"远程桌面连接"
121.36.163.25:33389
peakgrin:33389
6. 其他
远程重启Win10(以管理员运行CMD):
shutdown -r -t 0
原文链接:https://mp.weixin.qq.com/s/NCWkpsNUqEi5pir9gFAZXw
Win10使用SSH反向隧道(端口转发)连接远程桌面的更多相关文章
- 利用SSH反向隧道,连接内网服务器
前言 公司有一台文件服务器(内部使用,无外网IP),上面主要安装了SVN服务,用来存储和共享各部门的文档,因为都是内网,直接远程(mstsc)上去就可以方便维护,但最近公司租了新的办公室,部分员工被分 ...
- SSH 内网端口转发实战
导读 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人. 如果两个内网之间的linux服务器需要互相登录,或需要互相访问内网某个端口,担忧 ...
- 基于SSH协议的端口转发
[前言] 最近一直在使用ssh协议的端口转发(隧道)功能,完成对内网空透等.这篇文章将主要讲解3种常用的ssh tunnelling使用方法和基本原理. 在介绍具体内容前,我先奉上端口转发的常用情景: ...
- Win10无法连接远程桌面提示“你的凭据不工作”的三个解决方法
Win10无法连接远程桌面提示"你的凭据不工作"的三个解决方法(转藏) 解决方法一:修改组策略 1.在"开始"窗口运行gpedit.msc,进入计算机配置-&g ...
- Win10连接远程桌面的时候提示您的凭证不工作该怎么办?
Win10连接远程桌面的时候提示您的凭证不工作该怎么办?Win10连接远程桌面的时候,提示“您的凭证不工作”.原有保存的远程帐号密码无法使用,导致远程登录系统失败.我这里总结下自己解决的方法,分享给大 ...
- 几种常见的Windows 服务器无法联网/无法连接远程桌面等故障解决方案
SEO优化扫我一.服务器无法连接远程桌面 1.Ping不通IP,网站打不开,不可以远程连接.可能是服务器死机了,或者网络有问题,请尝试Web重启服务器或联系服务商确认. 2.Ping正常,网站可以打开 ...
- Windows 10无法连接远程桌面解决办法(这可能是由于CredSSP加密Oracle修正)
问题描述: 使用windows10 连接远程桌面时出现如下错误: 出现身份验证错误. 要求的函数不受支持. 这可能是由于CredSSP加密Oracle修正. 若要了解详细信息,请访问https://g ...
- 远程桌面连接无法验证您希望连接的计算机的身份-mac连接远程桌面
在使用Mac(苹果笔记本)连接远程桌面的时候提示:”远程桌面连接无法验证您希望连接的计算机的身份”,具体异常如截图:解决方法如下:1. 登录云服务器.2. 打开运行,然后输入命令gpedit.msc, ...
- [Windows]解决:windows连接远程桌面-出现身份验证错误,要求的函数不受支持( CredSSP加密数据库修正)[转载]
文由 需要在本地Windows系统电脑通过远程桌面(mstsc)另一台Windows服务器,将其内的数据拷贝过来.但却发生了这样的异常 解决方案 step1 Win+R step2 打开注册表: gp ...
- ssh验证和端口转发
ssh 服务登录验证 ssh 服务登录验证方式: 用户/ 口令 基于密钥 基于用户和口令登录验证 客户端发起ssh请求,服务器会把自己的公钥发送给用户 用户会根据服务器发来的公钥对密码进行加密 加密后 ...
随机推荐
- 技术教程 | 基于 Web 端的屏幕共享实践
屏幕共享的英文叫做 DesktopSharing,通俗点讲就是将自己电脑的画面分享给其他人, 被分享的可以是整个电脑屏幕.应用程序或者某一个打开的网页等等. 而随着音视频领域的深入发展,完备的功能 ...
- Figma 学习笔记 – Image
参考: Figma Tutorial: Images 3 Ways to Insert Image 1. rectangle / frame + fill 画一个 rectangle / frame ...
- SimpleAISearch:C# + DuckDuckGo 实现简单的AI搜索
最近AI搜索很火爆,有Perplexity.秘塔AI.MindSearch.Perplexica.memfree.khoj等等. 在使用大语言模型的过程中,或许你也遇到了这种局限,就是无法获取网上最新 ...
- 【赵渝强老师】Flink的DataSet算子
Flink为了能够处理有边界的数据集和无边界的数据集,提供了对应的DataSet API和DataStream API.我们可以开发对应的Java程序或者Scala程序来完成相应的功能.下面举例了一些 ...
- manim边学边做--形状匹配
manim中有几个特殊的用于形状匹配的对象,它们的作用是标记和注释已有的对象,本身一般不单独使用. 形状匹配对象一共有4种: BackgroundRectangle:为已有的对象提供一个矩形的背景 C ...
- 简化部署流程:Rainbond让Jeepay支付系统部署更轻松
在如今的开发环境中,部署一套像 Jeepay 这样的 Java 支付系统往往需要开发者面对繁琐的配置.依赖环境管理以及服务的高可用性保障,手动部署和运维变得异常艰巨和费时.然而,借助 Rainbond ...
- USB3.0与USB2.0编码方式的区别
首先,USB3.0传输的编码方式和USB2.0本质上是不同的. 1.USB3.0的编码方式 USB 3.0采用的是8b/10b编码方式,由于高速传输,信号干扰的问题,USB 3.0采用 8/10bit ...
- Oracle ASM磁盘组配置、日常运维、故障处理等操作资料汇总
ASM(自动存储管理)在数据库中是非常重要的组成部分,它可以为磁盘提供统一的存储管理.提高磁盘访问的性能和可用性.简化管理复杂度,从而为数据库的运行提供更好的支持. 这里就为大家整理了墨天轮数据社区上 ...
- computed 中的属性名和data的属性名可以相同吗?
不可以,因为无论computed 中的属性名还是 data 又或者是props中的属性名,都会别挂载到组件实例上,所以名字都不允许重复 : ps:好比一个作用域里面不允许定义2个相同的变量名 :
- error loading sources list: ('The read operation timed out',)解决办法!!
一.灵魂四问 1.为什么叫rosdepc? rosdepc,c指的是China中国,主要用于和rosdep区分. 2.rosdepc和rosdep功能一致吗? rosdep官方最新版源码直接修改的,小 ...