Openssh服務器的搭建,並使用PSFTP實現文件自動上傳,下載的script命令

纔來這家公司被分配一個任務協助經理完成SSH Server的搭建,並且要實現客戶端直接向服務器端上傳文件。OK廢話少說首先先來搭建服務器的步驟!

(1)下載

服務器端我們使用openssh,它自帶了cygwin環境以及scp/sftp的服務器(sftp是ssh的一個“子服務”,在ssh通道中使用某個命令在需要時激活)。 http://sourceforge.net/project/showfiles.php?group_id=103886&package_id=111688&release_id=252007在該頁面中我們下載SSHWindows-Installer, 3.8p1-1 20040709 Build這個程序即可。(如圖1)

image

而客戶端我們則採用的是winscp軟件,他是一款圖形化界面的軟件,界面操作類似於ftp軟件,很好上手。我們到 http://sourceforge.net/project/showfiles.php?group_id=85589這個地址下載WinSCP 3.8.2。

 

image

配置sftp服務端:

sftp服務端的安裝與配置還是比較簡單的,通過幾條命令就可以開啓sftp服務。

第一步:將之前下載的sftp服務端解壓縮,然後直接運行主程序。點“NEXT”按鈕進行下面的操作。

image (如圖3)

第二步:在許可協議窗口處填寫“同意”並點“下一步”按鈕繼續。

image

第三步:在接下來的配置窗口中選擇要安裝的組件,從界面中我們可以看到包括client(客戶端)與server(服務器端),實際上我們只需要服務器端,而客戶端我們使用之前下載的WinSCP 3.8.2即可。選擇相應的服務器端組件後點“下一步”按鈕繼續。(如圖5)

image

第四步:選擇程序安裝的路徑,默認是c:\program files\openssh,建議大家不修改這個缺省地址。(如圖6)

image

第五步:默認情況下openssh將添加一個應用程序到開始程序中,名字叫做openssh for windows。

image

第六步:安裝的最後openssh會自動建立ssh安全加密key,保證SSH傳輸過程中的安全可靠。

image

第七步:完成所有安裝工作,點“完成”按鈕回到桌面。(如圖9)

image

第八步:接下來就要啓動該服務了,我們通過“開始->運行->輸入CMD後回車”進入到命令提示窗口,然後通過cd命令定位到c:\programfiles\openssh\bin目錄。(如圖10)

image

第九步:依次執行mkgroup -l >> ..\etc\group mkpasswd -l >> ..\etc\passwd命令,這樣你目前windows本地帳戶中的用戶就都可以登錄該sftp服務器了,他們自對文件目錄的訪問權限和NTFS權限一致。此步驟相當於FTP中的建立訪問帳號。(如圖11)

image

第十步:添加完各個訪問帳戶後我們可以到c:\program files\openssh\etc目錄中來查看group和passwd兩個文件的內容,當然這些內容是經過了加密的。(如圖12)

image

這兩個文件存儲的都是帳戶相關信息,正如前面所說他們是從unix移植過來的,配置方式仍然使用了conf文件的方式,幾乎沒有圖形界面。而且這些配置文件一般用unix換行符,建議各位IT168讀者使用ultraedit等工具而不是notepad來編輯,一是確保能正常顯示,二是確保保存時不會破壞它的格式導致服務程序無法讀取。(如圖13)

 

image

第十一步:最後在剛纔進入的c:\program files\openssh\bin目錄下執行net start opensshd命令,這將啓動opensshd服務,我們就可以開始訪問了。(如圖14)

 

image

小提示:一般sftp用默認的22端口發佈服務就行。如果你有特殊的原因要把這個端口改掉,請編輯C:\ProgramFiles\OpenSSH\etc\sshd_config文件,把這一行改成你要的端口,比如8029,設置完畢後需要重啓openssh服務(任何配置改動都需要重啓服務)。
至此服務器端的配置完成,下面我們來介紹如何在客戶端上訪問建立的sftp服務。
小提示:如果以後要繼續添加訪問帳戶的話,首先在windows中加上這個用戶,例如我們以名爲sftp的帳戶爲例,設置密碼,確保不要選中“下次登錄必須改密碼”。這個用戶的權限和用戶組由你來決定。然後進入c:\program files\openssh\bin目錄,執行mkpassword -l -u sftp>> ..\etc\passwd命令即可將剛纔添加的sftp帳戶添加到訪問權限中。說白了指令加-u是加單獨一個帳戶,沒有-u參數的話將把當前系統中所有帳戶添加到容許訪問sftp服務器的帳戶列表中。

配置sftp客戶端就更加簡單了,由於之前我們已經下載了WinSCP 3.8.2,所以直接運行該程序即可出現登錄配置界面。(如圖15)

image

我們根據實際填寫sftp服務器的地址和訪問帳戶信息,協議方面保持默認的sftp (allow scp fallback)即可,完成設置後點login登錄按鈕後會出現“使用提示”信息,不用理會繼續即可。(如圖16)

 

image

登錄進入服務器後我們會看到界面顯示和我們之前熟悉的ftp登錄工具一樣,特別是和flashfxp登錄FTP服務器類似。右邊是我們看到的sftp服務器發佈的目錄。(如圖17)

 

image

當然這個默認發佈目錄可能不是我們希望看到的,如果想要訪問你的C盤,我們可以先把焦點放在服務器那半邊窗口,然後按ctrl+o,輸入/cygdrive/c並回車,這樣就可以把這個目錄加到winscp的書籤或者作爲登錄時的默認目錄。(如圖18)

 

image

五、總結:
當我們要關閉sftp服務時只需要在服務器端對應目錄執行net stop opensshd指令即可,這樣對應服務將自動關閉。(如圖19)另外如果在客戶端上無法訪問sftp服務器的話,很可能是因爲XP系統自帶防火牆搗亂,我們關閉防火牆或者手動在windows防火牆配置中允許c:\Program Files\OpenSSH\usr\sbin\sshd.exe程序的執行和對網絡的訪問即可。

好了!相信大家都可以從網絡上找到上面的資料,如果只是做了這麼一點點我也不需要繼續開展以下的博文了,正如標題所說我要開始的是客戶端自動運行上傳或者下載的任務,這裏我們當然要直接使用SCRIPT command的方式來實現,不然每天都手工去上傳不把人累死 經理還以爲我們這些IT都白養了,網絡上找了好多都沒有一篇能實現自動登陸,不是在服務器定位這邊卡住就是在用戶passwd輸入時候停了

(1)首先在下載PSFTP.EXE,試驗了很多就這個能實現auto login。下載完成後直接在c盤下建個文件夾SFTP來放置psftp.exe如圖

image

(2)下面我們試驗一下用psftp.exe實現自動登陸

我開的client用戶名:sftp 密碼:P@ssw0rd //(0數字零)。

在dos命令行下進入c:\SFTP文件夾輸入命令如下psftp [email protected] –pw P@ssw0rd

//sftp(username)@127.0.0.1(server ip這裏是本機如果是遠程服務器輸入它的ip地址) -pw(後面跟的是密碼)

image

可以看到自動登陸到了服務器並且自動輸入了用戶名和密碼,哈哈有了這樣的方法就能實現用.bat文件自動上傳下載了!下面我們來驗證自動上傳下載

我們分別先建2個文件,一個叫upload.txt 和download.txt分別放置在C:\SFTP和C:\Program Files\OpenSSH也就是psftp和openssh的2個安裝文件夾!

image

image

下面我們來建一個.bat的文件主要實現將upload.txt上傳和 download.txt下載。傳輸結束後應該是Openssh文件夾中多了一個upload.txt文件,而sftp文件夾中多了一個download.txt文件。

我們直接在SFTP文件夾下編寫2個script,1個用來聯結SFTP服務器並且同步文件,另一個用來執行上傳和下載文件命令。我這裏分別較sync.bat和tranf.scr,他們的內容分別如下:

Sync.bat的內容

cd c:\sftp

psftp [email protected] -pw P@ssw0rd -b tranf.scr

pausa

bye

close

tranf.scr的內容

put upload.txt

get download.txt

sync.bat首先進入sftp文件夾才能使用PSFTP命令,然後輸入用戶名密碼並且調用tranf.scr中的內容實現下載和上傳的命令!

image

 

用文本文件編寫然後分別保存爲各自格式,好了下面來我們見證奇蹟的時刻吧!雙擊直接運行sync.bat command對話框一閃後就消失了,然後我們驚奇的發現2個文件夾下分別都多了一個文件。

 

image

image

是不是很興奮啦!好啦現在基本能實現上傳根下載的自動了!也不枉費我花這麼多時間來到網絡上找資料了,就是目前還有個問題,因爲小弟幾乎不懂linux的命令所以我不知道如何定位文件的位置,不知道在LINUX命令行中如何寫windows文件夾位置的腳本。希望有懂的高手們能教下小弟。在此謝過!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章