反饋已提交
網絡繁忙
Linux 系統自帶 SFTP 服務,本文以CentOS 7系統為例,介紹如何在 Linux 系統中使用 SFTP 。具體步驟可能因作業系統版本和配置差異而有所不同。
SFTP是透過SSH協定進行安全檔案傳輸的,因此需要安裝OpenSSH伺服器。
1)開啟終端或命令行介面。以root使用者身分登入。
2)運作以下命令以判斷是否安裝OpenSSH伺服器:
yum -q list openssh-server
如果看到與OpenSSH相關的匯出行,說明系統中已安裝了OpenSSH用戶端。請確定OpenSSH伺服器版本大於 4.8p1,如果版本過低,需要更新。
如果未找到相關的OpenSSH匯出,並顯示類似於"command not found"等錯誤訊息,則表示系統尚未安裝OpenSSH伺服器。
如根據2.2節查詢出,系統已安裝 4.8p1 以上版本的 OpenSSH 伺服器,可跨越本節操作。
如根據2.1節查詢出,系統尚未安裝OpenSSH伺服器,或已安裝的OpenSSH伺服器版本不符合要求,則需執行本節操作。
2)運作以下命令以更新系統軟體包列表:
sudo yum update
3)運作以下命令以安裝OpenSSH伺服器:
sudo yum install openssh-server
由於使用SFTP時,可能會出現高併發狀況,因此需要提前根據預期負載情況來優化伺服器的併發和對話數限制。
否則在高併發狀態下,SFTP連結會出現報錯:connection is closed by foreign host
參數介紹:
用於限制 SSH 伺服器允許的最大併發連結數和連結速率限制,即同時連結到伺服器的用戶端數量的上限
參數值的格式為 a:b:c
a:表示最大併發連結數
b:表示在a個連結數後進行啟動速率限制的時間視窗(以分鐘為單位)
c:表示在限制期間允許的最大增量連結數
預設值MaxStartups 10:30:100,表示最大併發連結數為10,限制為30分鐘內的連結速率,並允許每30分鐘增加100個連結。
用於限制一個使用者可以同時建立的 SSH 對話數
參數值的格式是一個整數,表示允許的最大對話數
預設值MaxSessions 10,表示每個使用者最多可以同時開啟 10 個 SSH 對話
修改方法:
2)使用正文編輯器(如vi或nano),開啟/etc/ssh/sshd_config檔案。
3)在檔案中找到包含MaxStartups和MaxSessions的行。
預設情況下,這兩行是註釋狀態(使用#開頭),取消註釋行。或者如果不存在,請在檔案的末尾新增以下行並儲存:
MaxStartups 1000:30:1200MaxSessions 1000
4)重新載入SSH伺服器的配置以應用更改。可以使用以下命令重新載入OpenSSH伺服器:
sudo systemctl reload sshd
預設情況下,OpenSSH伺服器使用系統上的使用者進行身分驗證。需要確定有一個可以用於登入的使用者帳戶,並且該使用者具有適當的權限。
本節範例建立一個帳號為fanruan的使用者,併為其設定密碼和資料夾權限。
1)建立使用者(將"fanruan"更換為你要建立的帳號)
sudo adduser fanruan
2)為使用者設定密碼(將"fanruan"更換為你要建立的帳號,並按照提示設定密碼)
sudo passwd fanruan
3)準備一個資料夾,用於存放帆軟應用工程檔案。本文範例/home/fanruan
4)請確定該使用者有該資料夾的讀寫權限(將"/home/fanruan"更換為你的資料夾路徑)
chmod -R 777 /home/fanruan
1)進入帆軟應用%Tomcat_HOME%/webapps/webroot資料夾。
2)將其中的 WEB-INF 資料夾,copy到 OpenSSH 伺服器準備好的 /home/fanruan 目錄(即2.4節準備的資料夾)下。
2)運作以下命令以檢查SSH伺服器的狀態:
service sshd status
如果Active狀態為running,說明 SFTP 已啟動。
如果Active狀態不是running,說明SFTP未啟動。
3)運作以下命令以啟動SSH伺服器:
service sshd start
SFTP 所在伺服器防火牆需開放 22 埠。
管理者登入FineBI系統,點選「管理系統>智慧維運>叢集配置」,詳情配置步驟請參考:Linux系統手動配置標準抽取叢集
配置檔案伺服器時,協定選擇 SFTP ,路徑填寫絕對路徑,為 WEB-INF 資料夾的路徑。如下圖所示:
service sshd status #查看 sftp 的狀態service sshd start #啟動服務service sshd stop #停止服務service sshd restart #重啟 sftp
注:SFTP 預設是隨系統啟動而啟動的,更多維運知識參見:Linux版叢集維運手冊
登入 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後關閉
反馈已提交
网络繁忙