—————————————————
聲明:本教程現已經棄用。由於客戶端同時安裝Cygwin和OpenSSH for Windows會出現問題(Cygwin的shell下無法使用ssh命令),建議直接在客戶端使用Cygwin方式安裝SSH,不要使用OpenSSH for Windows。
新教程連接:
手動方式:http://www.cnblogs.com/feipeng8848/p/8583768.html
腳本自動方式:http://www.cnblogs.com/feipeng8848/p/8583780.html
—————————————————
指導思想:服務端和客戶端只要都安裝了OpenSSH就能使用SSH協議實現SCP。
—————————————————
服務器端操作系統:Windows XP
客戶端操作系統:Windows10
安裝與配置順序
1.服務端安裝OpenSSH
2.服務端配置OpenSSH
3.客戶端安裝OpenSSH
4.客戶端安裝WinSCP
5.客戶端安裝Cygwin
6.客戶端安裝Tcl與Expect
7.編寫Expect腳本實現自動登陸並下載文件
————————————————
下面逐步介紹安裝配置方法
說明:局域網內,請先用交換機把計算機連接起來,設置好IP地址。
1.服務端安裝OpenSSH
下載安裝包:https://sourceforge.net/projects/sshwindows/
除了修改軟件的安裝目錄其他都是一路默認選項,Next到最后。



2.服務端配置OpenSSH
win+r 打開運行,輸入cmd打開控制台執行如下操作
先cd到bin目錄
然后輸入如下命令(分兩次執行,注意命令中的參數是小寫的L)
mkgroup -l >> ..\etc\group
mkpasswd -l >> ..\etc\passwd

如果能在C:\OpenSSH\etc目錄下找到group文件和passwd文件即說明上面兩個命令執行成功。這兩個文件沒有擴展名。
接下來在服務器的C:\OpenSSH目錄上創建home目錄、home下創建用戶目錄(以Adminstrator為例),用戶目錄下創建.ssh目錄。建議使用命令,右鍵新建文件夾的話無法將文件夾命名為.ssh


使用寫字板打開C:\OpenSS\etc\sshd_config文件,檢查幾個設置是否設成下面這樣,確保去除前面的#號,括號中的漢字是說明該行代碼的意思,sshd_config文件中並沒有這些。
Protocol 2 PermitRootLogin no (禁止root賬戶登陸) PermitEmptyPasswords no (禁止沒有密碼) PasswordAuthentication yes (是否允許密碼登陸,yes是允許,no是禁止) RSAAuthentication yes PubkeyAuthentication yes (允許公鑰登陸) AuthorizedKeysFile .ssh/authorized_keys (公鑰目錄)

然后修改注冊表,為軟件指定/home的目錄
運行(win+r)里輸入regedit,打開注冊表,然后找到如下項
[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home] "native"="D:\\OpenSSH\\home" "flags"=dword:0000000a
把"native"改成你自己的/home所在目錄,此目錄就是默認的登陸目錄,下圖的設置就是默認登陸目錄為:C:\OpenSSH\home

輸入如下命令啟動服務:
net start opensshd

到這里說明已經服務端已經安裝成功了OpenSSH並成功開啟了服務,需要指出的是以上截圖有一些是在Win10下截的,這部分與在XP上是一樣的。
以Administrator賬戶為例,設置下Windows XP登陸密碼(也就是平時的登陸密碼,我設置為123456),設置好IP地址(我設置為192.168.16.1)
現在,就可以使用客戶端軟件登陸了。
3.客戶端安裝OpenSSH
現在開始配置客戶端,首先在要客戶端安裝OpenSSH,使用上面為服務端安裝一樣的安裝包


配置的時候同樣要cd到bin目錄下執行這兩個命令

如果能在C:\OpenSSH\etc目錄下找到group文件和passwd文件即說明上面兩個命令執行成功。這兩個文件沒有擴展名。
4.客戶端安裝WinSCP
客戶端安裝WinSCP教程鏈接:http://www.cnblogs.com/feipeng8848/p/8568149.html
5.客戶端安裝Cygwin
到第4步就可以使用圖形界面的WinSCP手動遠程傳輸文件了,要想實現腳本自動登陸與傳輸,請繼續執行后面的步驟。
客戶端安裝Cygwin教程鏈接:http://www.cnblogs.com/feipeng8848/p/8555648.html
6.客戶端安裝Tcl與Expect
打開Cygwin Terminal,輸入如下命令安裝Tcl
apt-cyg install tcl
輸入如下命令安裝Expect
apt-cyg install expect
驗證安裝是否成功,輸入如下命令
which tclsh

同理測試Expect

寫一個helloworld腳本測試Tcl(腳本文件名:TestTcl.tcl)

7.編寫Expect腳本實現自動登陸並下載文件
編寫腳本文件
#!/usr/bin/expect spawn ssh Administrator@192.168.16.1 expect "*password:" send "123456\r" expect "*#"
執行該腳本即可鏈接上服務器:

編寫腳本文件
#!/usr/bin/expect spawn scp Administrator@192.168.16.1:/home/Administrator/33/ID.txt /home expect "*password:" send "123456\r" expect "*#"
執行該腳本即可從服務端把/home/Administrator/33/ID.txt 文件復制到本地的/home目錄下
至此,可實現SSH遠程聯機與下載文件。
————————————————————
知識點匯總:http://www.cnblogs.com/feipeng8848/p/8559803.html
————————————————————
