scp

計算機學科名詞

scp是secure copy的縮寫,是用來進行遠程文件拷貝的。數據傳輸使用 ssh,並且和ssh 使用相同的認證方式,提供相同的安全保證。與rcp 不同的是,scp 在需要進行驗證時會要求你輸入密碼或口令。

傳送命令


scp
scp
SCP(Secure Copy)
scp 命令是 SSH 中方便有用的命令,在兩台伺服器之間直接傳送文件,僅用 scp 一個命令就完全解決了。可以在一台伺服器 上以 root 身份運行 #scp servername:/home/ftp/pub/file1 ./ 這樣就把另一台伺服器上的文件 /home/ftp/pub/file1 直接傳到本機器的當前目錄下,也可以用 #scp /tmp/file2 servername:/boot 把本機上的文件 /tmp/file2 送到另一台機器的 /boot 目錄下。而且整個傳送過程仍然是用 SSH 加密的。

應用實例


最簡單的應用如下:
scp 本地用戶名@IP地址:文件名 1 遠程用戶名 @IP 地址:文件名 2
[ 本地用戶名 @IP 地址:] 可以不輸入,可能需要輸入遠程用戶名所對應的密碼 .
可能有用的幾個參數:
-v 和大多數 linux 命令中的 -v 意思一樣,用來顯示進度 . 可以用來查看連接,認證,或是配置錯誤;
-C 使能壓縮選項;
-P 選擇埠 . 注意 -p 已經被 rcp 使用;
-4 強行使用 IPV4 地址;
-6 強行使用 IPV6 地址;
-r 遞歸拷貝整個文件夾(包含子文件夾)。

例如

copy 本地的檔案到遠程的機器上;
scp /etc/lilo.conf;
會將本地的 /etc/lilo.conf 這個檔案 copy 到 net67使用者 k 的家目錄下。
copy遠程機器上的檔案到本地來;
scp .etc/lilo.conf /etc;
會將 中 /etc/lilo.conf 檔案 copy 到本地的 /etc 目錄下。
保持從來源 host 檔案的屬性;
scp –p k@net67.:/etc/lilo.conf /etc;
在此必須注意使用者的許可權是否可讀取遠程上的檔案,若想知道更多關於 scp 的使用方法,可去看看 scp 的使用手冊。

觸摸板

產生公開鑰 (pulib key) 和私人鑰 (private key),以保障 ssh 聯機的安性,當 ssh 連 shd 伺服器,會交換公開鑰上,系統會檢查 /etc/ssh_know_hosts 內儲存的 key,如果找到客戶端就用這個 key 產生一個隨機產生的session key 傳給伺服器,兩端都用這個 key 來繼續完成 ssh 剩下來的階段。
它會產生 identity.pub、identity 兩個檔案,私人鑰存放於identity,公開鑰 存放於 identity.pub 中,接下來使用 scp 將 identity.pub copy 到遠程機器的家目錄下.ssh下的authorized_keys。 .ssh/authorized_keys(這個 authorized_keys 檔案相當於協議的 rhosts 檔案),之後使用者能夠不用密碼去登入。RSA的認證絕對是比 rhosts 認證更來的安全可靠。
執行:
scp identity.pub .tw:.ssh/authorized_keys;
若在使用 ssh-keygen 產生鑰匙對時沒有輸入密碼,則如上所示不需輸入密碼即可從 去登入 在此,這裡輸入的密碼可以跟帳號的密碼不同,也可以不輸入密碼。