Linuxword Global
当前位置: Linux技术 > Debian配置環境SFTP服務

SFTP 意思是「 安全文件傳輸協議(Secure File Transfer Protocol)」 或 「 SSH 文件傳輸協議(SSH File Transfer Protocol)」,它是最常用的用於通過 ssh 將文件從本地系統安全地傳輸到遠程伺服器的方法,反之亦然。sftp 的主要優點是,除 openssh-server 之外,我們不需要安裝任何額外的軟件包,在大多數的 Linux 發行版中,openssh-server 軟件包是默認安裝的一部分。sftp 的另外一個好處是,我們可以允許用戶使用 sftp ,而不允許使用 ssh 。

當前發佈的 Debian 10 代號為 『Buster』,在這篇文章中,我們將演示如何在 Debian 10 系統中在 「監獄式的」 Chroot 環境中配置 sftp。在這裏,Chroot 監獄式環境意味著,用戶不能超出各自的家目錄,或者用戶不能從各自的家目錄更改目錄。下面實驗的詳細情況:

  • OS = Debian 10
  • IP 地址 = 192.168.56.151

讓我們跳轉到 SFTP 配置步驟,

步驟 1、使用 groupadd 命令給 sftp 創建一個組

打開終端,使用下面的 groupadd 命令創建一個名為的 sftp_users 組:

root@linuxtechi:~# groupadd sftp_users

步驟 2、添加用戶到組 sftp_users 並設置權限

假設你想創建新的用戶,並且想添加該用戶到 sftp_users 組中,那麼運行下面的命令,

語法:

#  useradd -m -G sftp_users <用戶名>

讓我們假設用戶名是 jonathan:

root@linuxtechi:~# useradd -m -G sftp_users jonathan

使用下面的 chpasswd 命令設置密碼:

root@linuxtechi:~# echo "jonathan:<輸入密碼>" | chpasswd

假設你想添加現有的用戶到 sftp_users 組中,那麼運行下面的 usermod 命令,讓我們假設已經存在的用戶名稱是 chris:

root@linuxtechi:~# usermod -G sftp_users chris

現在設置用戶所需的權限:

root@linuxtechi:~# chown root /home/jonathan /home/chris/

在各用戶的家目錄中都創建一個上傳目錄,並設置正確地所有權:

root@linuxtechi:~# mkdir /home/jonathan/upload
root@linuxtechi:~# mkdir /home/chris/upload
root@linuxtechi:~# chown jonathan /home/jonathan/upload
root@linuxtechi:~# chown chris /home/chris/upload

注意: 像 Jonathan 和 Chris 之類的用戶可以從他們的本地系統上傳文件和目錄。

步驟 3、編輯 sftp 配置文件 /etc/ssh/sshd_config

正如我們已經陳述的,sftp 操作是通過 ssh 完成的,所以它的配置文件是 /etc/ssh/sshd_config,在做任何更改前,我建議首先備份文件,然後再編輯該文件,接下來添加下面的內容:

root@linuxtechi:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
root@linuxtechi:~# vim /etc/ssh/sshd_config
......
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
......

保存並退出文件。

為使上述更改生效,使用下面的 systemctl 命令來重新啟動 ssh 服務:

root@linuxtechi:~# systemctl restart sshd

在上面的 sshd_config 文件中,我們已經注釋掉了以 Subsystem 開頭的行,並添加了新的條目 Subsystem sftp internal-sftp 和新的行。而

Match Group sftp_users –> 它意味著如果用戶是 sftp_users 組中的一員,那麼將應用下面提到的規則到這個條目。

ChrootDierctory %h –> 它意味著用戶只能在他們自己各自的家目錄中更改目錄,而不能超出他們各自的家目錄。或者換句話說,我們可以說用戶是不允許更改目錄的。他們將在他們的目錄中獲得監獄一樣的環境,並且不能訪問其他用戶的目錄和系統的目錄。

ForceCommand internal-sftp –> 它意味著用戶僅被限制到只能使用 sftp 命令。

步驟 4、測試和驗證 sftp

登錄到你的 sftp 伺服器的同一個網絡上的任何其它的 Linux 系統,然後通過我們放入 sftp_users 組中的用戶來嘗試 ssh 和 sftp 服務。

[root@linuxtechi ~]# ssh root@linuxtechi
root@linuxtechi's password:
Write failed: Broken pipe
[root@linuxtechi ~]# ssh root@linuxtechi
root@linuxtechi's password:
Write failed: Broken pipe
[root@linuxtechi ~]#

以上操作證實用戶不允許 ssh ,現在使用下面的命令嘗試 sftp:

[root@linuxtechi ~]# sftp root@linuxtechi
root@linuxtechi's password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

讓我們使用 sftp 的 get 命令來嘗試下載一個文件:

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

上面的輸出證實我們能從我們的 sftp 伺服器下載文件到本地機器,除此之外,我們也必須測試用戶不能更改目錄。

讓我們在 upload 目錄下嘗試上傳一個文件:

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

這證實我們已經成功地從我們的本地系統上傳一個文件到 sftp 服務中。

現在使用 winscp 工具來測試 sftp 服務,輸入 sftp 伺服器 IP 地址和用戶的憑證:

21915q83817s4560n3p70o3n39566o6p-1

在 「Login」 上單擊,然後嘗試下載和上傳文件:

00n14937023p4nq7on5558nss92592q7-1

現在,在 upload 文件夾中嘗試上傳文件:

077p9113os744r6no9q18nq2618os7n5-1

上面的窗口證實上傳是完好地工作的

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"Debian配置環境SFTP服務"

最新评论

    暂无留言哦~~

博客简介

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2227 篇
  • 草稿数目: 11 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5466 个
  • 注册用户: 139 人
  • 访问总量: 8,659,875 次
  • 最近更新: 2024年3月5日