這幾天遇到了個問題,需要在linux終端下往遠程windows xp(同一局域網)傳輸文件。 由於之前在該linux下都是往遠程的linux傳輸文件,而當時使用的是scp。遠程切到windows以後,也想繼續使用scp來完成,在網上搜集了一下資料,可以通過安裝openssh for windows來實現。
openssh for windows,官網在國內無法訪問,我是通過鏡像網站來下載的,版本爲3.8p1。安裝過程此處略過。說一下安裝過後的基本配置。
- 打開命令行,切換到openssh安裝目錄中的bin文件夾,執行如下命令:
mkgroup -l >> ..\etc\group
mkpasswd -l -u ziven >> ..\etc\passwd
其中ziven是windows上的用戶的用戶名。- 修改防火牆,例外當中添加22端口(默認ssh端口,如果在etc\sshd_config當中更改了port的值,此處應該是相應的值)。
- 如果總是提示無法切換到/home/ziven目錄(No such files or directory),可以使用編輯器打開安裝目錄下的etc\passwd文件,將剛剛ziven用戶對應的/home/ziven更改爲其他的目錄(已經存在的目錄),例如更改爲/cygdrive/c/ziven(即c:\ziven文件夾)。
此時應該已經可以在遠程使用scp來完成複製了,語法還是之前的語法,此處特別需要注意的一項是,遠程windows當中的路徑的表示方法。由於一開始沒有看幫助文檔,總是寫不對路徑,後來查看幫助文檔才瞭解到,路徑的正確寫法(默認情況下)應該是(假設路徑爲D:\test\data\):
/cygdrive/d/test/data/
所以如果要甚至本地文件test到剛剛的目錄,命令應該是:
scp test [email protected]:/cygdrive/d/test/data/
PS:
後續將繼續添加ssh公鑰認證以及修改默認的路徑表示法。