溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-08-27 19:47:22 來源:腳本之家 閱讀:330 作者:Lyle_Dong 欄目:服務(wù)器

基于 ssh 的 sftp 服務(wù)相比 ftp 有更好的安全性(非明文帳號(hào)密碼傳輸)和方便的權(quán)限管理(限制用戶的活動(dòng)目錄)。

1、開通 sftp 帳號(hào),使用戶只能 sftp 操作文件, 而不能 ssh 到服務(wù)器

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

確定版本

#確保 ssh 的版本高于 4.8p1 否則升級(jí)一下 一般都高于這個(gè)版本
ssh -V

新建用戶和用戶組

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

活動(dòng)目錄

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

基本的 ssh 配置

# ssh 服務(wù)的配置文件
vi /etc/ssh/sshd_config

#基本的ssh遠(yuǎn)程登錄配置
#開啟驗(yàn)證
PasswordAuthentication yes
#禁止空密碼登錄
PermitEmptyPasswords no
#開啟遠(yuǎn)程登錄
PermitRootLogin yes

至此你就可以使用 ssh 遠(yuǎn)程登錄服務(wù)器了

配置 sftp

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

Subsystem

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

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

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

Match [User|Group] userName|groupName

Match [User|Group] sftp    這里是對(duì)登錄用戶的權(quán)限限定配置 Match 會(huì)對(duì)匹配到的用戶或用戶組起作用 且高于 ssh 的通項(xiàng)配置

ChrootDirectory    用戶的可活動(dòng)目錄 可以用 %h 標(biāo)識(shí)用戶家目錄 %u 代表用戶名 當(dāng) Match 匹配的用戶登錄后 會(huì)話的根目錄會(huì)切換至此目錄 這里要尤其注意兩個(gè)問題

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

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

/bin/bash: No such file or directory

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

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

配置完成 重啟 sshd 服務(wù)

service sshd restart

注意:

1、chroot 可能帶來的問題,因?yàn)?chroot 會(huì)將會(huì)話的根目錄切換至此,所以 ssh 登錄很可能會(huì)提示 /bin/bash: No such file or directory 的錯(cuò)誤,因?yàn)榇藭?huì)話的路徑會(huì)為 chroot/bin/bash

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

總結(jié)

以上所述是小編給大家介紹的linux操作系統(tǒng)下配置ssh/sftp和權(quán)限設(shè)置方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI