SCP 命令詳解 舉例說明:
復(fù)制遠(yuǎn)程服務(wù)器的文件到本地 scp -P 999 root@21andy.com:/home/test.zip /home/
復(fù)制本地的目錄到遠(yuǎn)程服務(wù)器 scp -P 999 -r /home/andy/ root@21andy.com:/home/
SCP 命令語法
scp [-1245BCpqrv] [-c cipher] [F ssh_config] [-I identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:] file1 […] [[suer@]host2:]file2 SCP 命令說明
Scp在主機(jī)間復(fù)制文件。他使用 ssh(1)作為數(shù)據(jù)傳輸。而且用同樣認(rèn)證和安全性。 scp將在認(rèn)證中請求輸入密碼所有的文件可能需要服務(wù)器和用戶的特別描述來指明文件將被復(fù)制到/從某臺服務(wù)器。兩個遠(yuǎn)程登錄的服務(wù)器間的文件復(fù)制是允許的。 SCP 命令選項
-1 強(qiáng)制scp 用協(xié)議1
-2 強(qiáng)制scp 用協(xié)議2
-4 強(qiáng)制scp用IPV4的網(wǎng)址
-6 強(qiáng)制scp用IPV6的網(wǎng)址
-B 選擇批處理模式(防止輸入密碼)
-C 允許壓縮。 標(biāo)注-C到ssh(1)來允許壓縮
-c cipher
選擇cipher來加密數(shù)據(jù)傳輸。這個選項直接傳遞到ssh(1)
-F ssh_config
設(shè)定一個可變動的用戶配置給ssh.這個選項直接會被傳遞到ssh(1)
-i identity_file
選擇被RSA認(rèn)證讀取私有密碼的文件。這個選項可以直接被傳遞到ssh(1)
-l limit
限制傳輸帶寬,也就是速度 用Kbit/s的速度
-o ssh_option
可以把ssh_config中的配置格式傳到ssh中。這種模式對于說明沒有獨立的scp文件中斷符的scp很有幫助。關(guān)于選項的如下。而他們的值請參看ssh_config(5)
-P port
指定連接遠(yuǎn)程連接端口。注意這個選項需要寫成大寫的模式。因為-p已經(jīng)早保留了次數(shù)和模式
-S program
指定一個加密程序。這個程序必須可讀所有ssh(1)的選項。
-p 指定修改次數(shù),連接次數(shù),還有對于原文件的模式
-q 把進(jìn)度參數(shù)關(guān)掉
-r 遞歸的復(fù)制整個文件夾
-S program
指定一個加密程序。這個程序必須可讀所有ssh(1)的選項。
-V 冗余模式。 讓 scp 和 ssh(1) 打印他們的排錯信息, 這個在排錯連接,認(rèn)證,和配置中非常有用。 SCP 命令診斷
scp 返回0 成功時,不成功時返回值大于0 SCP 命令不需要輸入用戶密碼的使用方法 在兩臺機(jī)器的兩個用戶之間建立安全的信任關(guān)系后,可實現(xiàn)執(zhí)行scp命令時不需要輸入用戶密碼。 1. 在機(jī)器A上root用戶執(zhí)行
ssh-keygen
命令,生成建立安全信任關(guān)系的證書。 [root@A root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <– 直接輸入回車
Enter passphrase (empty for no passphrase): <– 直接輸入回車
Enter same passphrase again: <– 直接輸入回車
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is: ……
注意:在程序提示輸入 passphrase 時直接輸入回車,表示無證書密碼。
上述命令將生成私鑰證書
id_rsa
和公鑰證書
id_rsa.pub,存放在用戶目錄的
.ssh
子目錄中。 2. 將公鑰證書
id_rsa.pub
復(fù)制到機(jī)器B的root目錄的.ssh子目錄中,同時將文件名更換為authorized_keys。 [root@A root]# scp -p .ssh/id_rsa.pub root@機(jī)器B的IP:/root/.ssh/authorized_keys
root@192.168.3.206’s password: <– 輸入機(jī)器B的root用戶密碼
在執(zhí)行上述命令時,兩臺機(jī)器的root用戶之間還未建立安全信任關(guān)系,所以還需要輸入機(jī)器B的root用戶密碼。
經(jīng)過以上2步,就在機(jī)器A的root和機(jī)器B的root之間建立安全信任關(guān)系。下面我們看看效果: [root@A root]# scp -p test root@機(jī)器B的IP地址:/root
成功了!真的不再需要輸入密碼了。
注意兩點:
1.如果遠(yuǎn)程服務(wù)器防火墻有特殊限制,scp便要走特殊端口,具體用什么端口視情況而定,命令格式如下:
#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠(yuǎn)程服務(wù)器相應(yīng)文件的權(quán)限。
下面給出一個例子,希望你看得懂:[root@localhost ~]# pwd/root[root@localhost ~]# lsanaconda-ks.cfg ftpaccount install.log.syslogbackup.tar.gz install.log svn1.4.3[root@localhost ~]# scp backup.tar.gz root@192.168.1.21:/tmp/The authenticity of host '192.168.1.21 (192.168.1.21)' can't be established.RSA key fingerprint is 4d:b4:e1:5b:80:8f:ea:df:0a:eb:dd:30:e7:00:07:90.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.1.21' (RSA) to the list of known hosts.root@192.168.1.21's password: << 提示輸入192.168.1.21的SSH密碼backup.tar.gz 100% 5120KB 1.3MB/s 00:04[root@localhost ~]# |