如何使用 Linux scp 傳送資料? SSH log要怎麼紀錄?
LINUX 實用技巧

如何使用 Linux SCP 傳送資料? SSH LOG 要怎麼紀錄?

SCP 什麼是 ? 1分鐘認識 SCP 連線原理!

安全複製Secure copySCP)兩台主機之間的上傳與下載是基於我們常使用的 SSHSecure ShellSSH

SCP 好處是什麼?

若要在不同的 Linux 主機之間複製檔案,最常用的方法就是使用 scp 指令

  • 指令簡單且跨作業系統 (Linux, Mac OS X, Windows需安裝套件)
  • 上傳或下載皆可以使用
  • 最重要的,能夠同時用它進行身分認證,從而確保資料傳輸時的真實性保密性

SCP 指令及使用方式

語法

scp 指令的語法跟一般的 cp 類似,其語法為:

scp {帳號@來源主機}:來源目錄或檔案 {帳號@目的主機}:目的目錄或檔案

SCP 常用參數介紹

scp 參數選項描述
-P (port)指定遠端主機的 ssh 埠
-p保留檔案修改和訪問時間
-q不顯示進度表和錯誤資訊
-C傳輸時壓縮資料
-r遞迴複製檔案

SCP 教學範例

本地端複製檔案到遠端

# 本地端的 /path/file複製到 192.168.50.1 上的/path/file

scp /path/file username@192.168.50.1:/path/file

本地端複製目錄到遠端

若要複製整個目錄以及其下的所有檔案,則加上 -r 參數:

# 本地端的目錄 /path/dir 複製到 192.168.50.1 上的/path/dir

scp -r /path/dir username@192.168.50.1:/path/dir

從遠端複製檔案到本地端

# 遠端 192.168.50.1 的 /path/file 複製到地端的 /path/file

scp username@192.168.50.1:/path/file /path/file

從一個遠端位置複製檔案到另一個遠端位置

scp username@192.168.50.1:/path/file username2@192.168.50.2:/path/file

保留檔案時間與權限

# 保留原本的修改時間、存取時間與權限

scp -p /path/file username@192.168.50.1:/path/file

資料壓縮

# 保留原本的修改時間、存取時間與權限

scp -C /path/file username@192.168.50.1:/path/file

限制傳輸速度

# 指定可用的網路頻寬上限值(單位為 Kbit/s) 5120即5M速度

scp -l 5120 /path/file username@192.168.50.1:/path/file

自訂連接埠

一般 SSH 伺服器的連接埠號預設為22,如果遇到非預設埠號,可使用 -p 來指定埠號

# 指定埠號 8888

scp -p 8888 /path/file username@192.168.50.1:/path/file

IPv4 與 IPv6

一般 SSH 伺服器的連接埠號預設為22,如果遇到非預設埠號,可使用 -p 來指定埠號

# 使用 IPv4
scp -4 /path/file1 myuser@192.168.50.1:/path/file2

# 使用 IPv6
scp -6 /path/file1 myuser@192.168.50.1:/path/file2

這個命令會提示我們輸入使用者密碼,輸入正確的密碼後就會開始傳輸,可參考本篇SSH Key是什麼?4步驟實現 SSH 連線免密碼!

使用 SCP 的注意事項

ssh 或是 scp 異動檔案的LOG記錄預設是關閉的,但從資安的角度出發,任何異動檔案都需要被記錄下來,根據使用經驗LOG最好能夠保留6個月的紀錄,當然設備的空間有限,可以搭配crontab定期壓縮備份既有的檔案來節省空間,未來有機會我在寫一篇文章來補充

編輯 /etc/ssh/sshd_config (需 openssh 4.x版以上)

Subsystem sftp /usr/libexec/openssh/sftp-server 
改為
Subsystem sftp /usr/libexec/openssh/sftp-server -f AUTH -l INFO

設定完之後,若往後有檔案的異動都會記錄在 /var/log/messages

參考資料:wikipediaSCP command optionsredhatIBM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。