CentOS上搭建SFTP

来源:https://www.cnblogs.com/hdwang/p/18186365
-Advertisement-
Play Games

CentOS上搭建SFTP 在CentOS上安裝SFTP服務通常是通過安裝OpenSSH來實現的,因為OpenSSH預設提供了SFTP功能。以下是在CentOS上安裝SFTP的步驟: 一、安裝OpenSSH伺服器: sudo yum install openssh-server 啟動SSH服務: s ...


CentOS上搭建SFTP

 

CentOS上安裝SFTP服務通常是通過安裝OpenSSH來實現的,因為OpenSSH預設提供了SFTP功能。以下是在CentOS上安裝SFTP的步驟:

 

一、安裝OpenSSH伺服器:

sudo yum install openssh-server

啟動SSH服務:

sudo systemctl start sshd

確保SSH服務隨系統啟動而啟動:

sudo systemctl enable sshd

檢查SSH服務狀態:

sudo systemctl status sshd

這將顯示SSH服務是否正在運行以及其他相關信息。

現在,你的CentOS伺服器上應該已經安裝並運行了SFTP服務。你可以使用任何支持SFTP的客戶端(如WinSCPFileZilla等)連接到伺服器。確保使用SSH協議(埠22)進行連接,並使用具有適當許可權的用戶憑據進行身份驗證。

 

二、配置sftp用戶、訪問目錄等

下麵是一個完整的例子,假設我們要創建一個名為sftpuser的用戶,限制他只能訪問/sftp目錄,並且使用特定的SSH配置文件。

 

創建SFTP用戶:

sudo useradd -m -s /sbin/nologin sftpuser

設置用戶密碼:

sudo passwd sftpuser

創建用戶的SFTP根目錄:

sudo mkdir /sftp

設置根目錄的許可權(根目錄必須是root用戶,否則sftp連接不上):

sudo chown root:root /sftp

sudo chmod 755 /sftp

在根目錄下層建立子目錄方可以寫入(根目錄只能讀取不能寫入,因為根目錄必須是root用戶,而sftp訪問的用戶卻是我們新建的sftpuser)

mkdir /sftp/sharedata

chown sftpuser:sftpuser /sftp/sharedata

 

創建新用戶自定義ssh配置

簡單點直接修改/etc/ssh/sshd_config也可以,這樣服務啟動選項sshd.service就不用改了

創建用戶的SSH配置文件目錄:

sudo mkdir /home/sftpuser/.ssh

複製系統SSH配置文件到用戶目錄:

sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config

編輯用戶的SSH配置文件:

sudo vi /home/sftpuser/.ssh/sshd_config

在這個文件中,確保你有適當的配置,例如使用ChrootDirectory限制用戶訪問,以及其他任何你想要自定義的配置。註意將這個配置節放到最後,否則老是報錯: "Directive 'UseDNS' is not allowed within a Match block" 表明在 Match 塊中不允許使用 UseDNS 這個指令。

Match User sftpuser

    ChrootDirectory /sftp

    ForceCommand internal-sftp

    AllowTcpForwarding no

X11Forwarding no

 

給新用戶的用戶目錄遞歸設置歸屬

chown -R sftpuser:sftpuser /home/sftpuser

給配置文件設置讀取許可權

chmod 755 /home/sftpuser/.ssh/sshd_config

 

修改SSH服務啟動選項

打開SSH服務的啟動選項文件,可以使用systemctl status sshd查看找到(通常在 /etc/systemd/system/sshd.service /etc/init.d/sshd /usr/lib/systemd/system/sshd.service),並修改為:

ExecStart=/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config -D $OPTIONS

或者

/usr/sbin/sshd -f /home/sftpuser/.ssh/sshd_config $OPTIONS

重新載入SSH服務:

systemctl daemon-reload

systemctl restart sshd

現在,用戶sftpuser被限制在sftp目錄下,並且只能使用SFTP進行文件傳輸。他們的SSH配置文件位於/home/sftpuser/.ssh/sshd_config,這樣他們可以自定義他們的SSH行為而不影響其他用戶或系統級別的配置。

 

查看錯誤日誌:

檢查系統日誌:如果問題仍然存在,請查看系統日誌文件,如 /var/log/auth.log /var/log/secure,以獲取有關寫入文件失敗的詳細信息。日誌文件中可能會提供關於出現問題的原因的線索。

 

三、多SFTP用戶如何配置

SSH服務啟動選項只能指定一個配置文件。如果你想要為多個用戶指定不同的配置,你需要為每個用戶創建單獨的配置文件,併在啟動選項中指定這些文件。

 

例如,如果你有兩個用戶 sftpuser1 sftpuser2,你可以為他們分別創建不同的配置文件,然後在SSH服務的啟動選項中指定這些文件。

 

為每個用戶創建配置文件:

sudo cp /etc/ssh/sshd_config /home/sftpuser1/.ssh/sshd_config

sudo cp /etc/ssh/sshd_config /home/sftpuser2/.ssh/sshd_config

編輯每個用戶的配置文件並根據需要進行自定義:

sudo vi /home/sftpuser1/.ssh/sshd_config

 

Match User sftpuser1

    ChrootDirectory /sftp

    ForceCommand internal-sftp

    AllowTcpForwarding no

    X11Forwarding no

 

sudo vi /home/sftpuser2/.ssh/sshd_config

 

Match User sftpuser2

    ChrootDirectory /sftp/other_directory

    ForceCommand internal-sftp

    AllowTcpForwarding no

    X11Forwarding no

修改SSH服務的啟動選項,分別指定每個用戶的配置文件:

ExecStart=/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config -D $OPTIONS

或者

/usr/sbin/sshd -f /home/sftpuser1/.ssh/sshd_config -f /home/sftpuser2/.ssh/sshd_config $OPTIONS

這樣配置後,每個用戶將使用自己的配置文件,可以分別定製他們的SSH行為。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄一、什麼是PXE1、簡介2、工作模式3、工作流程二、什麼是Kickstart1、簡介2、觸發方式三、無人值守安裝系統工作流程四、實驗部署1、環境準備2、服務端:關閉防火牆和selinux3、添加一張僅主機的網卡4、配置僅主機的網卡4.1、修改網路連接名4.2、配IP地址4.3、重啟網卡5、配置D ...
  • 文件IO練習題 設計程式,實現在LCD上任意位置顯示一張任意大小的色深為24bit的bmp圖片,要求圖像不失真可以在開發板的LCD上顯示。 代碼: /*************************************************************************** ...
  • 解題的關鍵在於 顯示圖片的雙重for迴圈條件與目標位置的結合,且該程式輸入的坐標值為圖片左上角像素點坐標 ...
  • 目錄文件IO知識點補給1.FAT32與NTFS文件系統的區別?2.MMU的概述和作用3.簡述Linux系統內核的作用4.瞭解Linux系統目錄和文件夾的區別標準IO介面一、打開文件函數1:fopen二、讀取數據(1)字元讀取函數2:fgetc函數3:getc函數4:getchar(2)按行讀取函數5 ...
  • 痞子衡嵌入式半月刊: 第 100 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回 ...
  • /** * @brief :實現bmp格式圖片的2倍縮小功能,並輸出新的目標bmp格式文件。最後利用800*480的開發板,展示縮放後的bmp文件 因為只是進行函數練習,未採用函數封裝的做法 * @author [email protected] * @date 2024/05/12 * Cop ...
  • I2C
    I2C I2C 1. I2C是什麼? 2. I2C匯流排的特點 3. 5種速率模式 3. I2C匯流排的硬體設計 4. I2C匯流排協議 4.1. I2C匯流排術語的定義 4.2. 數據傳輸方式 4.3. 4種信號 5. 總結 others 參考鏈接: UM10204 I2C-bus specificati ...
  • 在使用STM CubeMx時,遇到不能生成代碼的問題,即點擊“GENERATE CODE”後,軟體沒有任何反應。 從網上找到若幹解決方案,大概是: 以下是可能的解決方法: 1. 確保你已經安裝了正確版本的Keil和STM32CubeMX,並且它們都能正常運行。 2. 在STM32CubeMX中點擊生 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...