Quantcast
Channel: Hardware – Benjr.tw
Viewing all articles
Browse latest Browse all 145

SSH & SFTP

$
0
0

主要是參考了

The Will Will Web

我的需求如下:

不允許使用者登入 Shell 進行操作 ( 讓使用者只能使用 SFTP 傳輸檔案 )
使用者登入後皆到統一的目錄下, 透過 chroot 限制存取目錄.

編輯 “/etc/ssh/sshd_config" (OpenSSH 的設定檔)

# vi /etc/ssh/sshd_config
Subsystem sftp internal-sftp

Match group staff
        ChrootDirectory /home/share
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
# service sshd restart

Subsystem sftp /usr/lib/openssh/sftp-server internal-sftp
並修改成:

Subsystem sftp internal-sftp

其實我不太清楚為什麼要這麼設定,可以參考 http://en.wikibooks.org/wiki/OpenSSH/Cookbook/SFTP

然後在該設定檔最後加上以下設定,其中的 ChrootDirectory 設定的是為了讓使用者登入後皆到統一的目錄下

Match group staff
ChrootDirectory /home/share
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

staff 則是群組,要參考 /etc/group

# cat /etc/group
...
staff:x:504:ben,John,Mary,Dexter

John,Mary,Dexter 就會受到限制.

接下來是設定目路權限
因為使用到 chroot() 所以該目錄的擁有者必須為 root 權限 755

# chown root.root /home/share
# chmod 755 /home/share

要不然使用者無法登入,且會出現下面的訊息

# cat /var/log/secure
sshd[8636]: pam_unix(sshd:session): session opened for user sftpuser by (uid=0)
sshd[8707]: fatal: bad ownership or modes for chroot directory "/home/sftpuser"
sshd[8636]: pam_unix(sshd:session): session closed for user 

最後即是將新增一個 upload 目錄給群組 staff 的使用者來使用,使用者就可以透過 winscp 之類的工具了.

# cd /home/share
# mkdir upload
# chown staff.staff upload

Viewing all articles
Browse latest Browse all 145

Trending Articles