佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > linux操作系統(tǒng)下配置ssh/sftp和權限設置方法

linux操作系統(tǒng)下配置ssh/sftp和權限設置方法

熱門標簽:檢查注冊表項 使用U盤裝系統(tǒng) 阿里云 硅谷的囚徒呼叫中心 智能手機 百度競價點擊價格的計算公式 美圖手機 網(wǎng)站建設

基于 ssh 的 sftp 服務相比 ftp 有更好的安全性(非明文帳號密碼傳輸)和方便的權限管理(限制用戶的活動目錄)。

1、開通 sftp 帳號,使用戶只能 sftp 操作文件, 而不能 ssh 到服務器

2、限定用戶的活動目錄,使用戶只能在指定的目錄下活動,使用 sftp 的 ChrootDirectory 配置

確定版本

#確保 ssh 的版本高于 4.8p1 否則升級一下 一般都高于這個版本
ssh -V

新建用戶和用戶組

#添加用戶組 sftp
groupadd sftp
#添加用戶 指定家目錄 指定用戶組 不允許shell登錄
useradd -d /home/sftp -m -g sftp -s /bin/false sftp
#設置用戶密碼
passwd sftp

活動目錄

#設定你想要限定的活動目錄
mkdir -p /var/www/sftp
#配置權限 注意此目錄如果用于后續(xù)的 chroot 的活動目錄 目錄所有者必須是 root 必須是?。?!
chown root.sftp /var/www/sftp

基本的 ssh 配置

# ssh 服務的配置文件
vi /etc/ssh/sshd_config

#基本的ssh遠程登錄配置
#開啟驗證
PasswordAuthentication yes
#禁止空密碼登錄
PermitEmptyPasswords no
#開啟遠程登錄
PermitRootLogin yes

至此你就可以使用 ssh 遠程登錄服務器了

配置 sftp

#這里我們使用系統(tǒng)自帶的 internal-sftp 服務即可滿足需求
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem      sftp    internal-sftp

Subsystem

Subsystem 是說 ssh 的子模塊 這里啟用的即為 sftp 模塊,我們使用系統(tǒng)自帶的 internal-sftp 來提供此服務,其實配置到這你即可以使用帳號 ssh 登錄,也可以使用 ftp 客戶端 sftp 登錄。

如果你希望用戶只能 sftp 而不能 ssh 登錄到服務器,而且要限定用戶的活動目錄,繼續(xù)看下面的配置

#對登錄用戶的限定
Match Group sftp
    ChrootDirectory /var/www/sftp # 還可以用 %h代表用戶家目錄 %u代表用戶名
    ForceCommand    internal-sftp # 強制使用系統(tǒng)自帶的 internal-sftp 服務 這樣用戶只能使用ftp模式登錄
    AllowTcpForwarding no
    X11Forwarding no

Match [User|Group] userName|groupName

Match [User|Group] sftp    這里是對登錄用戶的權限限定配置 Match 會對匹配到的用戶或用戶組起作用 且高于 ssh 的通項配置

ChrootDirectory    用戶的可活動目錄 可以用 %h 標識用戶家目錄 %u 代表用戶名 當 Match 匹配的用戶登錄后 會話的根目錄會切換至此目錄 這里要尤其注意兩個問題

1、 chroot 路徑上的所有目錄,所有者必須是 root,權限最大為 0755,這一點必須要注意而且符合 所以如果以非 root 用戶登錄時,我們需要在 chroot 下新建一個登錄用戶有權限操作的目錄

2、chroot 一旦設定 則相應的用戶登錄時會話的根目錄 "/" 切換為此目錄,如果你此時使用 ssh 而非 sftp 協(xié)議登錄,則很有可能會被提示:

/bin/bash: No such file or directory

這則提示非常的正確,對于此時登錄的用戶,會話中的根目錄 "/" 已經(jīng)切換為你所設置的 chroot 目錄,除非你的 chroot 就是系統(tǒng)的 "/" 目錄,否則此時的 chroot/bin 下是不會有 bash 命令的,這就類似添加用戶時設定的 -s /bin/false 參數(shù),shell 的初始命令式 /bin/false 自然就無法遠程 ssh 登錄了

ForceCommand    強制用戶登錄會話時使用的初始命令 如果如上配置了此項 則 Match 到的用戶只能使用 sftp 協(xié)議登錄,而無法使用 ssh 登錄 會被提示
This service allows sftp connections only.

配置完成 重啟 sshd 服務

service sshd restart

注意:

1、chroot 可能帶來的問題,因為 chroot 會將會話的根目錄切換至此,所以 ssh 登錄很可能會提示 /bin/bash: No such file or directory 的錯誤,因為此會話的路徑會為 chroot/bin/bash

2、ForceCommand 為會話開始時的初始命令 如果指定了比如 internal-sftp,則會提示 This service allows sftp connections only. 這就如同 usermod -s /bin/false 命令一樣,用戶登錄會話時無法調用 /bin/bash 命令,自然無法 ssh 登錄服務器

總結

以上所述是小編給大家介紹的linux操作系統(tǒng)下配置ssh/sftp和權限設置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標簽:黃山 通遼 懷化 湖北 山南 煙臺 賀州 湘潭

巨人網(wǎng)絡通訊聲明:本文標題《linux操作系統(tǒng)下配置ssh/sftp和權限設置方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    含山县| 平乐县| 本溪| 永清县| 皋兰县| 湟源县| 周宁县| 永吉县| 高雄县| 仁寿县| 象山县| 银川市| 昌平区| 垦利县| 集安市| 贵港市| 云南省| 德兴市| 宁化县| 霍山县| 额尔古纳市| 札达县| 桃源县| 郴州市| 玉山县| 米易县| 三穗县| 龙川县| 黑水县| 绍兴市| 承德县| 石河子市| 织金县| 保康县| 绥中县| 平武县| 成武县| 丹棱县| 班玛县| 镇原县| 武定县|