用了一段時間的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桌面了。