在本文中,我們將向您展示如何使用 SFTP(安全文件傳輸協(xié)議),也稱為 SSH 文件傳輸協(xié)議,在本地機(jī)器和遠(yuǎn)程機(jī)器之間安全地傳輸文件。命令行提供了其他替代文件傳輸功能,例如SCP,它在后臺(tái)也使用 SSH(安全外殼)。在示例中,我們將使用托管在本地計(jì)算機(jī)上的示例文件 netflix_titles.csv.zip,我們將使用 SFTP 安全地傳輸它。

使用 SSH 登錄遠(yuǎn)程服務(wù)器
SSH 在兩個(gè)系統(tǒng)之間創(chuàng)建安全連接。對(duì)于此示例,您將需要一個(gè)本地和一個(gè)遠(yuǎn)程系統(tǒng)。如果您沒有遠(yuǎn)程系統(tǒng),請(qǐng)?jiān)?Windows 或 Linux 上快速配置遠(yuǎn)程服務(wù)器并使用您的 root(用戶名)和密碼登錄以進(jìn)行身份??驗(yàn)證:
ssh [email protected] [email protected]的密碼: 上次登錄:Fri Feb 26 14:28:52 2021 from 180.150.39.150 [ root@sm2134-216 ~]#
或者,您可以生成用于身份驗(yàn)證的 SSH 密鑰(公鑰和私鑰對(duì))并使用它登錄到遠(yuǎn)程服務(wù)器。要確保遠(yuǎn)程服務(wù)器上不存在任何文件,請(qǐng)檢查當(dāng)前目錄并列出該目錄的內(nèi)容:
[ root@sm2134-216 ~]# pwd /root [ root@sm2134-216 ~]# ls
如果您配置了新服務(wù)器,則根目錄中將沒有文件。退出遠(yuǎn)程機(jī)器并跳回本地機(jī)器并列出當(dāng)前目錄中的文件和子目錄:
[ root@sm2134-216 ~]# exit ??▓ ~/Projects/ServerMania ▓??─────────────────??▓ 在 12:10 花了 6m 1s ≡ : 39 ▓?? ? netflix_titles.csv.zip
該目錄包含一個(gè)文件netflix_titles.csv.zip,我們將使用 SFTP 命令將其傳輸?shù)竭h(yuǎn)程計(jì)算機(jī)。在本例中,我們使用的是 root 用戶,但請(qǐng)確保您的用戶對(duì)遠(yuǎn)程服務(wù)器具有寫權(quán)限。
使用 SFTP 登錄遠(yuǎn)程服務(wù)器
SFTP或安全文件傳輸協(xié)議是對(duì)傳統(tǒng)FTP(文件傳輸協(xié)議)的升級(jí)。SFTP 使用 SSH(安全外殼)來保護(hù)連接。
讓我們使用 SFTP 命令登錄到遠(yuǎn)程機(jī)器并啟動(dòng) SFTP 會(huì)話并運(yùn)行?或幫助命令:
? sftp [email protected] [email protected]的密碼: 連接到 172.105.186.216。 sftp> ?
這將列出所有可能的 SFTP 命令,但我們只想查看其中的幾個(gè)。這些命令中的大多數(shù)類似于用于導(dǎo)航、文件和目錄創(chuàng)建等的基本 shell 命令。讓我們看一些 SFTP 命令的示例:
- sftp> put?- 上傳文件
- sftp> get?- 下載文件
- sftp> cd path?- 將遠(yuǎn)程目錄更改為“路徑”
- sftp> pwd?- 顯示遠(yuǎn)程工作目錄
- sftp> lcd path?- 將本地目錄更改為“路徑”
- sftp> lpwd?- 顯示本地工作目錄
- sftp> ls?- 顯示遠(yuǎn)程工作目錄的內(nèi)容
- sftp> lls?- 顯示本地工作目錄的內(nèi)容
在下面的代碼片段中,您可以看到上面提到的一些命令的示例在 SFTP 提示符下運(yùn)行:
??▓ ~/Projects/ServerMania ▓??────────────────────────────??▓ ≡ 20:51: 54 ▓?? ? sftp [email protected] [email protected]的密碼: 連接到172.105.186.216。 sftp> pwd 遠(yuǎn)程工作目錄:/root sftp> ls sftp> lpwd 本地工作目錄:/Users/kovid/Projects/ServerMania sftp> sftp> mkdir files sftp> cd files sftp> pwd 遠(yuǎn)程工作目錄:/root/files sftp> cd .. sftp> rmdir 文件 sftp>
既然您知道如何導(dǎo)航本地機(jī)器和遠(yuǎn)程服務(wù)器的文件系統(tǒng),您將學(xué)習(xí)如何將文件從一個(gè)機(jī)器傳輸?shù)搅硪粋€(gè)機(jī)器。
將文件從本地計(jì)算機(jī)傳輸?shù)竭h(yuǎn)程服務(wù)器
首先,讓我們看看如何使用安全文件傳輸協(xié)議將文件從本地機(jī)器傳輸?shù)竭h(yuǎn)程機(jī)器。登錄服務(wù)器以訪問 SFTP 提示并導(dǎo)航到本地目錄,該目錄包含要傳輸?shù)奈募?/p>
連接到 172.105.186.216。 sftp> lpwd 本地工作目錄:/Users/kovid sftp> lcd /Users/kovid/Projects/ServerMania sftp> lpwd 本地工作目錄:/Users/kovid/Projects/ServerMania sftp> lls netflix_titles.csv.zip sftp> put netflix_titles. csv.zip 上傳 netflix_titles.csv.zip 到 /root/netflix_titles.csv.zip netflix_titles.csv.zip 100% 1207KB 1.5MB/s 00:00 sftp>
如您所見,使用put命令,我們已成功將文件netflix_titles.csv.zip從本地機(jī)器傳輸?shù)竭h(yuǎn)程機(jī)器。請(qǐng)注意,我們沒有提供遠(yuǎn)程機(jī)器上的任何路徑,因此文件被復(fù)制到遠(yuǎn)程機(jī)器的當(dāng)前目錄中。通過運(yùn)行l(wèi)s命令驗(yàn)證文件是否已被復(fù)制:
sftp> pwd 遠(yuǎn)程工作目錄:/root sftp> ls netflix_titles.csv.zip sftp> bye
使用bye命令關(guān)閉連接(SFTP 會(huì)話)。
將文件從遠(yuǎn)程服務(wù)器傳輸?shù)奖镜赜?jì)算機(jī)
現(xiàn)在,讓我們從本地機(jī)器中刪除本地文件,然后使用get命令從遠(yuǎn)程服務(wù)器獲取遠(yuǎn)程文件將其復(fù)制回來:
? pwd /Users/kovid/Projects/ServerMania ? ls netflix_titles.csv.zip ??▓ ~/Projects/ServerMania ▓??──────────────────── ────??▓ ≡ 21:16:22 ▓?? ? rm netflix_titles.csv.zip ??▓ ~/Projects/ServerMania ▓??───────────── ────────────??▓ ≡ 21:16:32 ▓?? ? ls ??▓ ~/Projects/ServerMania ▓??────────────── ──────────────??▓ ≡ 21:16:34 ▓?? ?
從本地系統(tǒng)中刪除文件后,再次與遠(yuǎn)程機(jī)器建立 SFTP 連接:
? sftp [email protected] [email protected]的密碼: 連接到 172.105.186.216。 sftp> get netflix_titles.csv.zip 獲取 /root/netflix_titles.csv.zip 到 netflix_titles.csv.zip /root/netflix_titles.csv.zip 100% 1207KB 4.8MB/s 00:00 sftp> sftp> lpwd 本地工作目錄: /Users/kovid/Projects/ServerMania sftp> lls netflix_titles.csv.zip sftp> 再見
或者,您也可以使用 SFTP 命令將遠(yuǎn)程文件復(fù)制到本地系統(tǒng),而無需從本地命令行建立持久連接。這不必使用get命令??聪旅娴拿睿?/p>
??▓ ~/Projects/ServerMania ▓??────────────────────────??▓ ≡ 21:25:12 ▓?? ? sftp [email protected] :netflix_titles.csv.zip 。 [email protected]的密碼: 連接到 172.105.186.216。 獲取 /root/netflix_titles.csv.zip 到 ./netflix_titles.csv.zip /root/netflix_titles.csv.zip 100% 1207KB 4.8MB/s 00:00 ??▓ ~/Projects/ServerMania ▓??──── ──────────────??▓ 21:25:22 花了 4s ≡ ▓?? ?
下一步
SFTP 命令是一種在兩臺(tái)服務(wù)器之間直接傳輸文件的簡單且安全的方法?,F(xiàn)在您擁有輕松使用此命令所需的一切!
還在為讓所有這些在 ServerMania 服務(wù)器上運(yùn)行而尋求幫助嗎?聯(lián)系我們的支持團(tuán)隊(duì),或在下面的評(píng)論中分享您的反饋!






