溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中怎么使用sftp傳輸文件/文件夾

發布時間:2022-01-27 14:32:34 來源:億速云 閱讀:569 作者:iii 欄目:開發技術
# Linux中怎么使用sftp傳輸文件/文件夾

## 一、SFTP簡介

SFTP(SSH File Transfer Protocol)是基于SSH協議的安全文件傳輸工具,相比傳統的FTP具有以下優勢:
- 加密所有傳輸數據
- 使用SSH默認端口22(無需額外開端口)
- 支持交互式和腳本化操作
- 保留文件屬性和權限

## 二、基礎連接方法

### 1. 基本連接語法
```bash
sftp [選項] [用戶名@]主機名/IP地址

常用選項: - -P port:指定非默認SSH端口 - -i identity_file:指定私鑰文件 - -o option:設置SSH參數

2. 認證方式

密碼認證(默認)

sftp user@192.168.1.100
# 輸入用戶密碼后進入sftp>提示符

密鑰認證(推薦)

sftp -i ~/.ssh/id_rsa user@example.com

三、文件傳輸操作

1. 上傳文件

# 上傳單個文件
put local_file.txt /remote/path/

# 上傳時重命名
put local_file.txt /remote/path/new_name.txt

# 上傳多個文件
put *.jpg /remote/path/

2. 下載文件

# 下載單個文件
get /remote/path/file.txt ~/local/

# 下載時重命名
get /remote/path/file.txt ~/local/new_name.txt

# 遞歸下載目錄(需配合-r選項)
get -r /remote/dir/ ~/local/

3. 目錄操作

# 查看遠程目錄
ls
lls  # 查看本地目錄

# 切換目錄
cd /remote/path
lcd ~/local  # 切換本地目錄

# 創建目錄
mkdir new_dir
lmkdir local_dir  # 本地創建

四、高級傳輸技巧

1. 遞歸傳輸目錄

# 上傳整個目錄
put -r local_dir /remote/path/

# 下載整個目錄
get -r /remote/dir/ ~/local/

2. 限速傳輸(避免帶寬占滿)

sftp -o "IPQoS=throughput" user@host  # 限制為普通優先級

3. 斷點續傳

# 下載時恢復中斷的傳輸
reget /remote/bigfile.zip

# 上傳時恢復
reput large_file.iso

五、批量傳輸與自動化

1. 使用批處理文件

創建transfer.txt

put /local/path/file1.txt
put /local/path/file2.txt
get /remote/path/data.csv
exit

執行:

sftp -b transfer.txt user@host

2. Shell腳本示例

#!/bin/bash
HOST="user@example.com"
PASS="your_password"

expect <<EOF
spawn sftp $HOST
expect "password:"
send "$PASS\r"
expect "sftp>"
send "put /local/file.txt /remote/\r"
expect "sftp>"
send "exit\r"
EOF

六、常見問題解決

1. 連接超時問題

sftp -o ConnectTimeout=30 user@host  # 設置超時時間

2. 權限錯誤處理

# 查看遠程文件權限
ls -l /path/to/file

# 可能需要先創建目標目錄
mkdir -p /remote/new/path

3. 中文亂碼問題

LANG=zh_CN.UTF-8 sftp user@host  # 指定編碼

七、圖形化工具推薦

雖然命令行足夠強大,但以下GUI工具可能更適合初學者: 1. FileZilla:支持SFTP的跨平臺客戶端 2. Nautilus(GNOME文件管理器):支持sftp://協議 3. Dolphin(KDE文件管理器):內置SFTP支持 4. WinSCP(Windows用戶):優秀的SFTP圖形客戶端

八、安全注意事項

  1. 禁用root登錄:在/etc/ssh/sshd_config中設置:
    
    PermitRootLogin no
    
  2. 使用強密碼:建議16位以上混合字符
  3. 定期更換密鑰:至少每6個月更新一次SSH密鑰
  4. 限制用戶目錄
    
    chroot_local_user=yes
    

九、性能優化建議

  1. 大文件傳輸時啟用壓縮:
    
    sftp -C user@host
    
  2. 網絡不穩定時使用rsync over SSH更可靠:
    
    rsync -avz -e ssh /local/path/ user@host:/remote/path/
    
  3. 大量小文件建議先打包再傳輸

十、擴展學習

  1. 相關命令對比

    命令 協議 加密 端口 特點
    ftp FTP 21 傳統文件傳輸
    sftp SSH 22 安全文件傳輸
    scp SSH 22 簡單文件拷貝
    rsync SSH/RSYNC 22 增量同步/斷點續傳
  2. 深入學習SSH

    man ssh_config
    man sshd_config
    

通過掌握這些SFTP技巧,您可以安全高效地在Linux系統間傳輸文件,滿足日常運維和開發需求。 “`

(注:實際字數約1450字,可根據需要刪減部分章節或示例調整到1350字左右)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女