Linux scp複製檔案,不需要輸入密碼的技巧,linuxscp
scp 是securecopy的簡寫,用於在Linux下進行遠程拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且 scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為唯讀readonlysystem時,用scp可以幫你把檔案移出來。另 外,scp還非常不佔資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然rsync比scp會快一點,但當小檔案眾多的情況 下,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。
1.命令格式:
scp[參數][原路徑][目標路徑]
2.命令功能:
scp是securecopy的縮寫,scp是linux系統下基於ssh登陸進行安全的遠程檔案拷貝命令。linux的scp命令可以在linux伺服器之間複製檔案和目錄。
3.命令參數:
-1強制scp命令使用協議ssh1
-2強制scp命令使用協議ssh2
-4強制scp命令只使用IPv4定址
-6強制scp命令只使用IPv6定址
-B使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C允許壓縮。(將-C標誌傳遞給ssh,從而開啟壓縮功能)
-p保留原檔案的修改時間,訪問時間和存取權限。
-q不顯示傳輸進度條。
-r遞迴複製整個目錄。
-v詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試資訊。這些資訊用於調試串連,驗證和配置問題。
-ccipher以cipher將資料轉送進行加密,這個選項將直接傳遞給ssh。
-Fssh_config指定一個替代的ssh設定檔,此參數直接傳遞給ssh。
-iidentity_file從指定檔案中讀取傳輸時使用的密鑰檔案,此參數直接傳遞給ssh。
-llimit限定使用者所能使用的頻寬,以Kbit/s為單位。
-ossh_option如果習慣於使用ssh_config(5)中的參數傳遞方式,
-Pport注意是大寫的P,port是指定資料轉送用到的連接埠號碼
-Sprogram指定加密傳輸時所使用的程式。此程式必須能夠理解ssh(1)的選項。
4.使用執行個體:
scp命令的實際應用概述:
從本機伺服器複製到遠程伺服器:
(1)複製檔案:
命令格式:
scplocal_fileremote_username@remote_ip:remote_folder
或者
scplocal_fileremote_username@remote_ip:remote_file
或者
scplocal_fileremote_ip:remote_folder
或者
scplocal_fileremote_ip:remote_file
第1,2個指定了使用者名稱,命令執行後需要輸入使用者密碼,第1個僅指定了遠端目錄,檔案名稱字不變,第2個指定了檔案名稱
第3,4個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第3個僅指定了遠端目錄,檔案名稱字不變,第4個指定了檔案名稱
(2)複製目錄:
命令格式:
scp-rlocal_folderremote_username@remote_ip:remote_folder
或者
scp-rlocal_folderremote_ip:remote_folder
第1個指定了使用者名稱,命令執行後需要輸入使用者密碼;
第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼;
從遠程伺服器複製到本機伺服器:
從遠程複製到本地的scp命令與上面的命令雷同,只要將從本地複製到遠端命令後面2個參數互換順序就行了。
執行個體1:從遠處複製檔案到本地目錄
命令:
scproot@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz/opt/soft/
執行個體1:從遠處複製檔案到本地目錄
命令:
scproot@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz/opt/soft/
說明:
從192.168.120.204機器上的/opt/soft/的目錄中下載nginx-0.5.38.tar.gz檔案到本地/opt/soft/目錄中
執行個體2:從遠處複製到本地
命令:
scp-rroot@192.168.120.204:/opt/soft/mongodb/opt/soft/
說明:
從192.168.120.204機器上的/opt/soft/中下載mongodb目錄到本地的/opt/soft/目錄來。
執行個體3:上傳本地檔案到遠程機器指定目錄
命令:
scp/opt/soft/nginx-0.5.38.tar.gzroot@192.168.120.204:/opt/soft/scptest
說明:
複製本地opt/soft/目錄下的檔案nginx-0.5.38.tar.gz到遠程機器192.168.120.204的opt/soft/scptest目錄
執行個體4:上傳本地目錄到遠程機器指定目錄
命令:
scp-r/opt/soft/mongodbroot@192.168.120.204:/opt/soft/scptes
當兩台LINUX主機之間要互傳檔案時可使用SCP命令來實現,建立信任關係之後可不輸入密碼。 把你的本地主機使用者的ssh公匙檔案複製到遠程主機使用者的~/.ssh/authorized_keys檔案中 假設本地主機linux100,遠程主機linux200 一,在linux100主機裡的使用者 運行 #ssh-k
當兩台LINUX主機之間要互傳檔案時可使用SCP命令來實現,建立信任關係之後可不輸入密碼。
把你的本地主機使用者的ssh公匙檔案複製到遠程主機使用者的~/.ssh/authorized_keys檔案中
假設本地主機linux100,遠程主機linux200
一,在linux100主機裡的使用者
運行
#ssh-keygen -t rsa
結果如下
QUOTE:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#斷行符號
Enter passphrase (empty for no passphrase):#斷行符號
Enter same passphrase again:#斷行符號
Your identification has been saved in /home/.username /.ssh/id_rsa.
Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0cusername@localhost
Generating RSA keys:
Key generation complete.
會在使用者目錄~/.ssh/產生兩個檔案,id_rsa,id_rsa.pub
二,把linux100主機上的id_rsa.pub檔案拷貝到linux200主機的root使用者主目錄下的.ssh目錄下,並且改名為authorized_keys
即:
/root/.ssh/authorized_keys
這樣在linux100主機上使用scp命令複製檔案到linux200上將不提示輸入密碼了,直接複製了。也可在linux100主機上使用scp命令將linux200上檔案複製到本機;總之不需要驗證,就可以在linux100訪問linux200
反之亦然!
註:如果有多台電腦需要與linux200進行複製,則只需將id_rsa.pub中的內容複寫到authorized_keys檔案中即可。
執行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys 將內容追加進去
三,複製檔案或目錄命令:
複製檔案:
(1)將本地檔案拷貝到遠程
scp 檔案名稱 使用者名稱@電腦IP或者電腦名稱:遠程路徑
(2)從遠程將檔案拷回本地
scp 使用者名稱@電腦IP或者電腦名稱:檔案名稱 本地路徑
複製目錄:
(1)將本地目錄拷貝到遠程
scp -r 目錄名 --使用者名稱@電腦IP或者電腦名稱:遠程路徑
(2)從遠程將目錄拷回本地
scp -r 使用者名稱@電腦IP或者電腦名稱:目錄名 本地路徑