傳送命令
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 到使用者my 的家目錄下。
例如
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 產生鑰匙對時沒有輸入密碼,則如上所示不需輸入密碼即可從 去登入 在此,這裡輸入的密碼可以跟帳號的密碼不同,也可以不輸入密碼。