1. 程式人生 > >Windows客戶端 SSH 遠端連線Windows伺服器(PowerShell Server)

Windows客戶端 SSH 遠端連線Windows伺服器(PowerShell Server)

     最近剛搞完SSH框架,又來研究研究SSH遠端連線。為什麼這麼要弄這個呢?因為現在我現在開發主要在自己的筆記本(windows)上,然後寫的後端都要部署到實驗室的桌上型電腦(windows)上,這樣一來,我一改點東西的話,還得去實驗室,在臺式機上操作把專案pull下來然後再部署到Tomcat上(僅僅是一個課程專案而已,不要見笑哈~),於是乎,為什麼我不能遠端操作我的桌上型電腦呢?

     好,於是開始網上查詢,發現ssh遠端連線,但是大部分的教程都是linux的,windows的基本可以參考的很少,畢竟linux更趨向與share而Windows基本是personal。但是我又不想把我的桌上型電腦裝成linux,畢竟已經裝了不少的軟體,而且我們的oracle資料庫還在這臺電腦上呢。於是乎,試試找找有沒有什麼方法吧~查找了一番,還真的發現一篇部落格(http://www.cnblogs.com/xred/archive/2012/04/21/2461627.html)講的就是這個,這個博主的服務端用的是freeSSHd這個軟體,客戶端是我們常用的putty。這個的確是可以遠端連線的,但是putty反饋的內容一堆亂碼,而且還沒有滾動條,中文就更不用說了,可以說,雖然可以連線,但是沒法用==

    其實我是去google找怎麼解決這個freeSSHd的亂碼問題的,無意間發現一個回答者說了如下的一句話:


這個就激起我的好奇心,這個PowerShell Server 是什麼呢?只是之前用過這個PoweShell 這個是可以kill執行緒的高階版cmd吧~於是就是查詢這個PowerShell(http://www.powershellserver.com/),看了簡介,這個就是一個專門用來連線windows的遠端連線軟體啊!而且它還有一個免費版的,雖然只能允許同時連線一個人,但是我覺得這對於我來說已經夠了。

這個的使用也是十分方便的,具體的配置使用可以參考這個GetStart(http://www.powershellserver.com/support/articles/getting-started/)

好了,我們來下載一個:


配置的話,因為我就是需要遠端連線,所以其他的我們就不管了~

先點選那個Server Key

因為我在同一個路由器下我們還有一個部署GitLab的centos,所以這個公網下22號埠被佔用了,於是呢,我就得改一下我這個ssh伺服器的埠:

然後呢,還要去設定下防火牆開放33號埠哦!

其實,原本這個軟體就是自帶了一個Server Key的,這個可以在我們的檔案目錄下找到~

我們也可以自己生成一個key,就是點選那個Generate然後按照提示就建立了~

然後呢,我們來點選Security

這裡的配置和我的上圖一樣就好~那個最後那個File Based Public Key就是你的客戶端生成的那個公鑰(我這裡直接用的git生成的那個)

然後,我們改一下他的編碼方式,改成簡體中文就好,這樣我們的putty裡面就顯示中文了~

這時候,點選儲存,啟動!

那麼我們的伺服器就配置好了~

下面我們來配置一下客戶端,這裡我們就用putty就好~

去官網(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)下載一個putty.zip


然後我們進入安裝目錄:

開啟puttygen.exe軟體,點選load載入一個private key,因為我的private key並不是puttygen產生的(也是最初使用git時候生成的,這樣的話也是為了和伺服器公鑰保持一致),所以需要進行一個轉換,載入完成之後,點選save private key,儲存為pri.ppk,這個是pageant.exe承認的key。

然後開啟pageant.exe,在托盤下面會看到一個圖示,點選add key,載入剛才生成的pri.ppk檔案。

然後我們開啟putty.exe


為了以後訪問的方便,我們可以在這裡儲存一個配置,然後open


因為,客戶端的私鑰和伺服器的公鑰保持一致,所以我們就直接登入上來了,這個登入名是可以隨便寫的,我們登入的都是伺服器的一個Happy使用者(我的windows使用者),如果我們在最開始勾選了那個run as windwos service的話,我們登入的就不是我的windows本地使用者了。


大家看這個路徑都已經變化了,我為什麼要使用windows使用者登入呢,因為為了我最初的需求嘛,我為了可以從github上pull下來最新的伺服器版本,如果不是以伺服器的本機使用者登入的話,那麼就沒有對應github的私鑰(我與github連線的方式也是ssh),那麼就會報一個錯誤:git host key verification failed

所以,我沒有勾選那個選項~

好了,大概就是這個樣子~希望大家玩的開心!

===================================================

今早,突然又發現連線,竟然要輸入密碼,輸入正確的密碼後竟然連線失敗,於是去看看伺服器的輸出資訊,說是私鑰和公鑰不符。

原來我們之前那個設定ssh 私鑰的方法不是永久的,所以,我們可以再開啟那個PAGEANT.EXE然後按照上面操作把私鑰新增進去,但是,每次筆記本開機之後連線都要這樣的話,是不是太不方便了?

於是呢,我們可以設定一下putty.exe這個程式:


這樣,然後把我們那個連線session儲存(我這裡是Happiness)即可。以後再練接的話就匯入這個session就好啦~


嗯嗯,補充的也就這些吧~