當(dāng)涉及到在Linux等操作系統(tǒng)中共享數(shù)據(jù)時(shí),我們可以選擇多種命令來共享信息。下面,我們將重點(diǎn)討論SCP命令,如何
通過SSH將文件從遠(yuǎn)程傳輸?shù)奖镜兀?/span>
一、什么是SCP命令?
SCP是安全復(fù)制協(xié)議的縮寫。它是一個(gè)命令行實(shí)用程序,允許用戶在兩個(gè)位置(通常是UNIX或Linux系統(tǒng)之間)之間安
全地復(fù)制文件和目錄。該協(xié)議確保文件傳輸經(jīng)過加密,以防止任何有可疑意圖的人獲取敏感信息。簡(jiǎn)而言之,我們可以
說SCP是cp( copy )命令的更安全選項(xiàng)。還需要注意的是,SCP通過SSH(安全外殼)連接使用加密,這可確保傳輸?shù)臄?shù)
據(jù)免受可疑攻擊。
二、SCP語法
就像終端中使用的任何其他命令一樣,SCP也有一種用于成功執(zhí)行的格式。通過理解語法,我們可以更輕松地寫下命令:
scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2
scp-它初始化命令并確保安全shell就位。
OPTIONS-他們根據(jù)使用方式授予不同的權(quán)限。一些最常見的選項(xiàng)包括:
P(大寫)-指定與遠(yuǎn)程主機(jī)建立連接的端口。
p(小寫)-保留時(shí)間戳以便于修改和訪問。
r -遞歸復(fù)制整個(gè)目錄
q -安靜地復(fù)制文件,不顯示進(jìn)度消息,也稱為安靜模式。
C -用于在傳輸過程中壓縮數(shù)據(jù)。
src_host-文件的托管位置。源可以是客戶端或服務(wù)器,具體取決于文件的來源。
dest_host-文件將被復(fù)制到的位置。
由于我們正在處理文件傳輸,這意味著必須有不止一臺(tái)機(jī)器的參與才能使該過程成為可能。我們可以在以下情況下使用
SCP:
在同一臺(tái)機(jī)器上復(fù)制文件。
將文件從本地主機(jī)復(fù)制到遠(yuǎn)程主機(jī),反之亦然。
在兩個(gè)不同的遠(yuǎn)程服務(wù)器之間復(fù)制文件。
此時(shí),在使用任何SCP命令之前,需要準(zhǔn)備好一些東西:
客戶端和服務(wù)器上都安裝了SSH。
對(duì)客戶端和服務(wù)器計(jì)算機(jī)的根訪問權(quán)限。
三、常用SCP命令
1、將文件從本地主機(jī)復(fù)制到遠(yuǎn)程服務(wù)器
復(fù)制文件時(shí),能夠?qū)⑽募?數(shù)據(jù)從本地存儲(chǔ)傳輸?shù)竭h(yuǎn)程服務(wù)器是非常重要的。使用SCP命令時(shí),需要指定一些事情才能發(fā)生
這種情況。
我們必須指定文件的路徑作為源,并指定文件復(fù)制到的遠(yuǎn)程主機(jī)路徑。
讓我們假設(shè)一個(gè)場(chǎng)景,我們有一個(gè)文件test.txt,我們需要將其復(fù)制到遠(yuǎn)程服務(wù)器,我們的命令如下所示:
scp test.txt userbravo@destination:/location2
我們不限制可以復(fù)制的文件數(shù)量。假設(shè)我們位于桌面上名為web的文件夾中,其中有.php文件擴(kuò)展名,并且需要將其復(fù)制
到遠(yuǎn)程服務(wù)器主目錄。我們的命令將如下所示:
scp *.php userbravo@destination_host:/~/
*.php -復(fù)制當(dāng)前指定文件夾中擴(kuò)展名為.php的所有文件。
/~/ - 表示將它們復(fù)制到主目錄。
假設(shè)我們想復(fù)制一個(gè)名為test.txt的文件,并使用端口選項(xiàng)將其以不同的名稱保存在遠(yuǎn)程服務(wù)器中。該命令將是:
scp -P 8080 test.txt userbravo@destination_host:/user/home/test2.txt
在此示例中,我們將文件test.txt從本地計(jì)算機(jī)復(fù)制到遠(yuǎn)程計(jì)算機(jī),并使用端口8080將其保存為test2.txt。
2、將文件從遠(yuǎn)程復(fù)制到本地
理解這一點(diǎn)的更好方法是使用示例。考慮一個(gè)我們想要從遠(yuǎn)程系統(tǒng)復(fù)制文件的場(chǎng)景。要復(fù)制文件,我們需要首先調(diào)用
SCP,然后是遠(yuǎn)程用戶名@IP 地址、文件路徑。
如果不指定路徑,則在這種情況下假定默認(rèn)為用戶的主目錄,這將遵循文件在本地存儲(chǔ)的路徑。語法:
scp <remote_username>@<IPorHost>:<PathToFile> <LocalFileLocation>
假設(shè)我想從地址為192.168.1.100的遠(yuǎn)程設(shè)備復(fù)制一個(gè)名為linuxcheatsheet的文件。
linuxcheatsheet文件存儲(chǔ)在kali用戶的主目錄中,我將驗(yàn)證該用戶。因此,在冒號(hào)之后,我不需要指定路徑,因?yàn)樗?/span>
默認(rèn)路徑,即主目錄,我只需鍵入文件名(“l(fā)inuxcheatsheet”)。然后,我通過鍵入一個(gè)點(diǎn)將當(dāng)前目錄指定為存儲(chǔ)文
件的本地位置。
scp lary@192.168.1.100:linuxcheatsheet .
3、將文件從遠(yuǎn)程主機(jī)復(fù)制到另一臺(tái)主機(jī)
在文件傳輸中使用SCP的優(yōu)點(diǎn)在于,它不僅允許本地計(jì)算機(jī)之間的連接,還允許您連接到遠(yuǎn)程服務(wù)器。
假設(shè)我們想要將名為test.txt的文件復(fù)制到另一個(gè)遠(yuǎn)程服務(wù)器,命令如下所示:
scp user1@host1.com:/files/test.txt user2@host2.com:/files
此命令將執(zhí)行的操作是從user1的文件夾中復(fù)制test.txt,并在user2 中創(chuàng)建它的副本,該副本仍在該文件夾中的
host2.com上運(yùn)行。
4、復(fù)制多個(gè)文件
復(fù)制多個(gè)文件時(shí),只需指定文件名作為源路徑即可。例如語法:
scp file1 file2 ... user@<ip_address_of_user>: Destination
假設(shè)我們想要復(fù)制文件 1、2、3 和 4。命令如下所示:
scp file1.txt file2.txt file3.txt file4.txt user1@host1.com:/home/user1/Desktop
總結(jié)要點(diǎn):
1、為了能夠復(fù)制文件,我們必須具有源文件的讀取權(quán)限和目標(biāo)系統(tǒng)的寫入權(quán)限。
2、SCP命令依賴SSH進(jìn)行安全數(shù)據(jù)傳輸,這意味著它需要密碼才能在遠(yuǎn)程系統(tǒng)上進(jìn)行身份驗(yàn)證。
3、復(fù)制具有相同名稱和位置的文件時(shí)要小心,因?yàn)镾CP會(huì)在不警告您的情況下覆蓋它們。
4、為了能夠區(qū)分本地和遠(yuǎn)程位置,請(qǐng)使用完整的冒號(hào):。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號(hào) IDC證:B1-20230800.移動(dòng)站