使用VNC+SSH建立安全的远程桌面访问WINDOWS服务器
用了一段时间的MONO,现在MONO也支持了ENTITY FRAMEWORK 6。但是实际上在LINUX环境里用MYSQL还是会有很多坑。并且之前在网络游戏服务端SCUT上扩展一些功能时候也遇到了一些因为MONO和.NET行为方式不一致的坑耗掉了不少时间。使用mono虽然可以节约性能开销,但是牺牲掉了windows套件本身的便利。微软开发工具的优势本来就在开发时候的方便,因此想开发的爽的话,还是老实用WINDOWS SERVER和SQL SERVER好了。而且windows server似乎也有无桌面的运行模式,具体怎么用试验过了再来发文吧。
windows的远程桌面只有用户名密码的方式登录,安全性并不高,不过LINUX上方便的工具很多都有WINDOWS的移植版本了。
这次使用了SecureCRT和RealVNC服务端和Cygwin在windows server服务器上搭建了使用RSA秘钥文件加密登录和SSH加密信道的远程桌面。
首先是服务端的配置:
首先在cygwin网站上下载最新版的cygwin,根据机器的CPU和操作系统类型:

下一步到如下界面设置CYGWIN安装到的目录,这里也是在cygwin控制台里根路径对应的位置:

这里是下载的包的缓存,增加软件包的时候需要重新运行安装程序:

选择安装源,最上面的源应该是最新的,国内也有一些镜像但是有些软件包似乎版本不是最新还有缺失。推荐使用网易的源,在我这里速度很快:
163的镜像:http://mirrors.163.com/cygwin/
在下面粘贴后ADD即可

这里搜索openssh,git, bash-completion以及bash-compelion-devel

搜索后点击前面的skip或者default改成要安装的版本号

选好所需软件包之后一直下一步等待安装。
这里选择yes
*** Query: (Say "no" if it is already installed as a service) (yes/no)
这里写ntsec
*** Info: 'cyg_server' will only be used by registered services.
*** Query: Do you want to use a different name? (yes/no)
Cygwin要建立一个cyg_server账户以运行sshd服务, 这里可以选择为该账户另取名字或者使用default. 我们选择no.
yes, 确定建立账户. 之后输入密码, 完成config.

点击Create Identity File创建公钥,key type选择RSA Passphrase可以不填 key length 1024或者2048都可以。

选择OpenSSH类型的秘钥,保存在自己电脑安全的位置(不要共享出去的地方):

登陆时候选择公钥并且登陆过程会自动读取公钥同目录下无扩展名的私钥,因此不要改名或者移动私钥
这样设置完成后秘钥对生成完毕,服务器上只需要保存公钥,即有pub扩展名的文件。
直接在这里upload到服务器总是失败,我后来是使用secureFX上传公钥到服务器上,位置是~/.ssh/authorized_keys 每个用户自己的文件夹下都有各自的公钥文件,多个公钥使用>>操作符追加到authorized_keys文件即可。
在服务端安装RealVNC Server
net stop winvnc4
sc start winvnc4 -localhost :1
pause
这里主要是为了传递localhost :1参数,让VNC在SSH隧道的本地端口等待连接
然后把这个批处理加到开始,或者其他开机自启动的位置
把服务器当前管理员账户设置为进入系统后直接登录,这样就可以保证开机之后启动VNC服务。试了在注册表和WIN.INI里在登录前启动批处理的方法,然并卵了。
参考这里设置自动登陆:http://jingyan.baidu.com/article/7e440953eabd742fc0e2efae.html
客户端先开启SecureCRT用之前设置的连接登陆 保持这个连接打开直到退出远程桌面
开启VNC Viewer,连接localhost :1
然后一切正常的话你就可以看到VNC远程桌面了 重启几次测试一下不靠windows远程桌面是否能登陆。如果可以的话就可以用VNC关闭windows远程桌面,到此你就可以保证只有拥有2个秘钥的计算机才能远程登陆windows桌面了。
使用VNC+SSH建立安全的远程桌面访问WINDOWS服务器的更多相关文章
- Linux 远程桌面 访问 WIndows
1. Debain 系列 linux sudo aptitude install rdesktop 2. Connect rdesktop <hostname> -r sound:off ...
- Linux和Windows系统的远程桌面访问知识(转载)
为新手讲解Linux和Windows系统的远程桌面访问知识 很多新手都是使用Linux和Windows双系统的,它们之间的远程桌面访问是如何连接的,我们就为新手讲解Linux和Windows系统的 ...
- Windows通过远程桌面访问Ubuntu
关于Windows通过远程桌面访问Ubuntu 问题及目标 Window环境通过远程桌面访问Ubuntu Ubuntu机器端 1. 安装所需软件包 sudoapt-get install x ...
- 如何在客户端配置ODBC来访问远程DB2 for Windows服务器
如何在客户端配置ODBC来访问远程DB2 for Windows服务器 马根峰 (广东联合电子服 ...
- Ubuntu下使用SSH 命令用于登录远程桌面
https://blog.csdn.net/yucicheung/article/details/79427578 问题描述 做DL的经常需要在一台电脑(本地主机)上写代码,另一台电脑(服务器,计算力 ...
- CentOS6.6中安装VNC server(CentOS配置远程桌面)
1.安装服务 yum install tigervnc-server 1 2 名字有点怪哦,CentOS5前叫vnc-server 2.运行并设置密码 vncserver + 回车 1 2 输入密码, ...
- windows / Linux 远程桌面访问全面总结 / 共享文件
一般来说,ssh 是指无图形界面形式,是命令行的方式. 速度快. vnc 是的是图形界面形式. 速度慢. ssh 方式登陆: 1.windows ...
- 使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机
1.创建ubuntu虚拟机,这里同样不再赘述,创建过程和创建Windows虚拟机基本一样,只是登录可以选择密钥注入或者用户名密码(为了方便我选择了用户名密码认证),创建完成后,查看虚拟机详情中的端口信 ...
- Ubuntu 14.04 Remmina远程桌面连接Windows计算机
可以在/usr/share/applications/目录下启动Remmina远程桌面客户端或者直接在Dash中搜索Remmina即可 启动后如下图,可以新建,复制,编辑,删除远程桌面客户端 选择新建 ...
随机推荐
- [转]【Java】内部类(Inner Class)如何创建(new)
简单来说,内部类(inner class)指那些类定义代码被置于其它类定义中的类:而对于一般的.类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类.对于一个内部类,包含其定义代码的类 ...
- Linux IO时事检测工具iostat
Linux IO时事检测工具iostat iostat命令用于检测linux系统io设备的负载情况,运行iostat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的次数和时间来获得所需的统 ...
- 2017-07-09(tar who last)
tar gzip ,bzip2对于文件目录压缩支持有限,所以出现了tar命令 tar [选项] 打包文件名 源文件 -c 打包 -v 显示过程 -f 指定打包文件名 -x 解包 -z 压缩成.ta ...
- mysql myisam转innodb的2种方法
mysql myisam转innodb的2种方法 mysql中的myisam和innodb有什么区别.一个好比便利店,一个好比大型购物中心,他们是为了适应不同的场合而存在的.当流量比较小,我们可以 ...
- 防盗链[referer]
原文出处:http://www.cnblogs.com/devilfree/archive/2012/09/11/2680914.html 总结一下今天学习防盗链Filter的一些知识点: 防盗链要实 ...
- Python笔记(七):字典、类、属性、对象实例、继承
(一) 简单说明 字典是Python的内置数据结构,将数据与键关联(例如:姓名:张三,姓名是键,张三就是数据).例如:下面这个就是一个字典 {'姓名': '张三', '出生日期': '2899-08 ...
- 【转】国际GNSS服务组织IGS
国际GNSS服务组织The International GNSS Service,简称IGS,前身为国际GPS服务组织.IGS提供的高质量数据和产品被用于地球科学研究等多个领域. IGS组织由卫星跟踪 ...
- Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)
我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...
- 面试中的DNS
DNS 当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称.客户机发送的每条查询信息包括三条信息:指定的DNS域名,指定的查询类型,DNS域名的指定类别. DNS基于UDP服务,端 ...
- <>和“”的区别
<stdio.h>是直接从系统里边找. ""是先在本地找,然后在系统里边找. <>不可以替换"", "" ...