反饋已提交

網絡繁忙

Linux系統配置使用SFTP

1. 概述

Linux 系統自帶 SFTP 服務,本文以CentOS 7系統為例,介紹如何在 Linux 系統中使用 SFTP 。具體步驟可能因作業系統版本和配置差異而有所不同。

2. 安裝OpenSSH伺服器

SFTP是透過SSH協定進行安全檔案傳輸的,因此需要安裝OpenSSH伺服器。

2.1 判斷是否已安裝OpenSSH伺服器

1)開啟終端或命令行介面。以root使用者身分登入。

2)運作以下命令以判斷是否安裝OpenSSH伺服器:

yum -q list openssh-server
  • 如果看到與OpenSSH相關的匯出行,說明系統中已安裝了OpenSSH用戶端。請確定OpenSSH伺服器版本大於 4.8p1,如果版本過低,需要更新。

  • 如果未找到相關的OpenSSH匯出,並顯示類似於"command not found"等錯誤訊息,則表示系統尚未安裝OpenSSH伺服器。

2.2 安裝OpenSSH伺服器

如根據2.2節查詢出,系統已安裝 4.8p1 以上版本的 OpenSSH 伺服器,可跨越本節操作。

如根據2.1節查詢出,系統尚未安裝OpenSSH伺服器,或已安裝的OpenSSH伺服器版本不符合要求,則需執行本節操作。

1)開啟終端或命令行介面。以root使用者身分登入。

2)運作以下命令以更新系統軟體包列表:

sudo yum update


3)運作以下命令以安裝OpenSSH伺服器:

sudo yum install openssh-server


2.3 修改併發和對話數限制

由於使用SFTP時,可能會出現高併發狀況,因此需要提前根據預期負載情況來優化伺服器的併發和對話數限制。

否則在高併發狀態下,SFTP連結會出現報錯:connection is closed by foreign host

參數介紹:

參數
說明
MaxStartups

用於限制 SSH 伺服器允許的最大併發連結數和連結速率限制,即同時連結到伺服器的用戶端數量的上限

參數值的格式為 a:b:c

  • a:表示最大併發連結數

  • b:表示在a個連結數後進行啟動速率限制的時間視窗(以分鐘為單位)

  • c:表示在限制期間允許的最大增量連結數

預設值MaxStartups 10:30:100,表示最大併發連結數為10,限制為30分鐘內的連結速率,並允許每30分鐘增加100個連結。

MaxSessions

用於限制一個使用者可以同時建立的 SSH 對話數

參數值的格式是一個整數,表示允許的最大對話數

預設值MaxSessions 10,表示每個使用者最多可以同時開啟 10 個 SSH 對話

修改方法:

1)開啟終端或命令行介面。以root使用者身分登入。

2)使用正文編輯器(如vi或nano),開啟/etc/ssh/sshd_config檔案。

3)在檔案中找到包含MaxStartups和MaxSessions的行。

預設情況下,這兩行是註釋狀態(使用#開頭),取消註釋行。或者如果不存在,請在檔案的末尾新增以下行並儲存:

MaxStartups 1000:30:1200
MaxSessions 1000


4)重新載入SSH伺服器的配置以應用更改。可以使用以下命令重新載入OpenSSH伺服器:

sudo systemctl reload sshd

2.4 配置SSH身分驗證

預設情況下,OpenSSH伺服器使用系統上的使用者進行身分驗證。需要確定有一個可以用於登入的使用者帳戶,並且該使用者具有適當的權限。

本節範例建立一個帳號為fanruan的使用者,併為其設定密碼和資料夾權限。

1)建立使用者(將"fanruan"更換為你要建立的帳號)

sudo adduser fanruan

2)為使用者設定密碼(將"fanruan"更換為你要建立的帳號,並按照提示設定密碼)

sudo passwd fanruan


3)準備一個資料夾,用於存放帆軟應用工程檔案。本文範例/home/fanruan

4)請確定該使用者有該資料夾的讀寫權限(將"/home/fanruan"更換為你的資料夾路徑)

chmod -R 777 /home/fanruan

3. 準備檔案伺服器

3.1 copy工程檔案

1)進入帆軟應用%Tomcat_HOME%/webapps/webroot資料夾。

2)將其中的 WEB-INF 資料夾,copy到 OpenSSH 伺服器準備好的 /home/fanruan 目錄(即2.4節準備的資料夾)下。

3.2 啟動 SFTP 服務

1)開啟終端或命令行介面。以root使用者身分登入。

2)運作以下命令以檢查SSH伺服器的狀態:

service sshd status
  • 如果Active狀態為running,說明 SFTP 已啟動。

  • 如果Active狀態不是running,說明SFTP未啟動。

3)運作以下命令以啟動SSH伺服器:

service sshd start

3.3 開放埠

SFTP 所在伺服器防火牆需開放 22 埠。

4. 叢集配置 SFTP 作為檔案伺服器

管理者登入FineBI系統,點選「管理系統>智慧維運>叢集配置」,詳情配置步驟請參考:Linux系統手動配置標準抽取叢集

配置檔案伺服器時,協定選擇 SFTP ,路徑填寫絕對路徑,為 WEB-INF 資料夾的路徑。如下圖所示:

5. 注意事項

5.1 維運知識

service sshd status #查看 sftp 的狀態
service sshd start #啟動服務
service sshd stop #停止服務
service sshd restart #重啟 sftp

注:SFTP 預設是隨系統啟動而啟動的,更多維運知識參見:Linux版叢集維運手冊 

5.2 無法上傳檔案或者無法重啟 sshd 服務

登入 Sftp 操作檔案報錯“550 create directory operation failed”或者無法登入以及開啟777權限以後仍然沒有讀寫權限考慮以下操作。

這是 SELinux(Security-Enhanced Linux,是美國國家安全局對於強制存取控制的實現)安裝機制問題,需要關閉 SELinux。

1)永久關閉 SELinux 的方式

vi /etc/selinux/config # 編輯 SELinux 的 config 檔案
SELINUX=enforcing --> SELINUX=disabled  # 永久關閉 SELinux 重啟系統生效

2)臨時關閉 SELinux 的方式

setenforce 0 # 執行命令,僅臨時關閉,重啟後又會恢復原狀

3)不關閉 SELinux

getsebool -a | grep ftpd # 查詢的結果中,只有 ftp_home_dir 和 allow_ftpd_full_access 必須為 on 才能使 vsftpd 具有存取 ftp 根目錄,以及檔案傳輸等權限
setsebool -P ftp_home_dir 1 # 執行即可
setsebool -P allow_ftpd_full_access 1 # 執行即可

注:更多 SELinux 相關的知識請參見:SELinux 入門

附件列表


主題: 部署集成
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙