日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

一分钟在Linux 环境 搭建 SFTP服务器

發布時間:2024/9/27 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一分钟在Linux 环境 搭建 SFTP服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

          • 一、實戰
            • 1. 創建sftp組:
            • 2. 創建一個用戶sftpuser:
            • 3. 設置sftpuser用戶的密碼,會要求你輸入兩次密碼確認:
            • 4. 創建一個sftp的上傳目錄:
            • 5. 修改用戶sftpuser所在的目錄:
            • 6. 配置sshd_config:
            • 7. 設定Chroot目錄權限:
            • 8. 建立SFTP用戶登入后可寫入的目錄
            • 9. 重啟sshd服務:
            • 10. 測試是否能正常登陸:
            • 11. 關閉SElinux:
          • 二、常見問題
            • 2.1. 這里討論了為什么要關閉這功能
            • 2.2. 連接異常

(附解決Write failed: Broken pipe Couldn’t read packet: Connection reset by peer)…

一、實戰
1. 創建sftp組:
groupadd sftp
2. 創建一個用戶sftpuser:
useradd -g sftp -s /bin/false sftpuser

#參數說明:
/etc/group 文件包含所有組
/etc/shadow /etc/passwd 系統存在的所有用戶名

3. 設置sftpuser用戶的密碼,會要求你輸入兩次密碼確認:
passwd sftpuser
4. 創建一個sftp的上傳目錄:
mkdir /app/data
5. 修改用戶sftpuser所在的目錄:
usermod -d /app/data sftpuser
6. 配置sshd_config:
vim /etc/ssh/sshd_config

如果沒有vim,請執行

vi /etc/ssh/sshd_config

#找到如下這行,并注釋掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加如下幾行(如果添加之后出現問題,則添加到最后)

Subsystem sftp internal-sftp #這行指定使用sftp服務使用系統自帶的internal-sftp Match Group sftp #這行用來匹配用戶組 ChrootDirectory /app/data #用chroot將用戶的根目錄指定到/app/data ,這樣用戶就只能在/app/data 下活動 AllowTcpForwarding no ForceCommand internal-sftp #指定sftp命令

為什么用 internal-sftp 而不用默認的 sftp-server,這是因為:
這是一個進程內的 sftp 服務,當用戶 ChrootDirectory 的時候,將不請求任何文件;更好的性能,不用為 sftp 再開一個進程。
#保存退出

7. 設定Chroot目錄權限:
chown -R root:root /app/data chmod 755 /app/data
8. 建立SFTP用戶登入后可寫入的目錄
mkdir /app/data/sftpuser chown -R sftpuser:sftp /app/data/sftpuser/ chmod 755 /app/data/sftpuser/
9. 重啟sshd服務:
service sshd restart
10. 測試是否能正常登陸:
#執行這一行命令,輸入密碼即可 sftp sftpuser@localhost
11. 關閉SElinux:
vim /etc/sysconfig/selinux

#找到如下這行
SELINUX=enforcing
#修改為
SELINUX=disabled
#保存退出

二、常見問題
2.1. 這里討論了為什么要關閉這功能

https://www.zhihu.com/question/20559538

2.2. 連接異常
[root@localhost home]# sftp sftpuser@localhost Connecting to localhost... sftpuser@localhost's password: Write failed: Broken pipe Couldn't read packet: Connection reset by peer

這個問題,是由于用戶組決定的,解決很簡單
我的sftp前綴目錄是/app/data
首先,咱們找到/app目錄,查看他的權限,也就是用戶組和用戶

從上圖,可以看出用戶和戶組都是root權限對吧,不要問為都是root,一句話,不是root,不好使。

然后,找到/app下面的data目錄

從上圖,可以看出用戶和戶組都是root權限對吧,不要問為都是root,一句話,不是root,不好使。

上面是sftpuser的限制活動的目錄。

下面進入到,sftpuser登錄后的目錄看看權限是什么樣的呢?

從上圖,可以看出用用戶是sftpuser、用戶組是sftp權限對吧,不要問為這樣設置,一句話,不這樣設置,不好使。

完美解決!

這樣問題不好發現,

補充:

我當初是怎樣發現這個問題的呢? 搭建sftp服務器 只要不在/app目錄下面創建都好使,但是在/app目錄下面創建就是不好使,然后我就比對目錄權限之間的區別,發現/app的用戶是oracle 用戶組是oinstall,怎樣測試和配置都不好使。希望能夠幫助到小伙伴們!

總結

以上是生活随笔為你收集整理的一分钟在Linux 环境 搭建 SFTP服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。