linux建立sftp賬號

2021-08-15 21:43:04 字數 1757 閱讀 9991

提供sftp服務的有vsftpd和internal-sftp,這裡用的是系統自帶的internal-sftp,操作步驟如下:

1.建立使用者yssftp,禁止ssh登入

useradd -s /sbin/nologinyssftp

2.設定使用者密碼

passwd yssftp
3.建立使用者的根目錄

mkdir /home/sftpfile
4.設定許可權

設定目錄許可權,目錄的許可權設定有兩個要點:

目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root

目錄開始一直往上到系統根目錄為止都不可以具有群組寫入許可權

chown root:root /home/sftpfile

chmod

755 /home/sftpfile

5.配置sshd_config

vim /etc/ssh/sshd_config

#注釋掉這行

#subsystem sftp /usr/libexec/openssh/sftp-server

#新增在配置檔案末尾

subsystem sftp internal-sftp #指定使用sftp服務使用系統自帶的internal-sftp

match user www #匹配使用者,如果要匹配多個組,多個組之間用逗號分割

chrootdirectory /home/sftpfile #用chroot將指定使用者的根目錄,chroot的含義

forcecommand internal-sftp #指定sftp命令

x11forwarding no

#這兩行,如果不希望該使用者能使用埠**的話就加上,否則刪掉

allowtcpforwarding no

6.重啟sshd服務

service sshd restart
7.使用者登入後進入的是/home/sftpfile即使用者根目錄,根目錄是無法寫入的,所以先用root在/home/sftpfile新建乙個upfile目錄

mkdir /home/sftpfile/upfile
8.修改目錄所有者和許可權

chown upfile

:upfile/home/sftpfile/upfile

chmod 777 /home/sftpfile/upfile

測試登入

sftp -oport=22 sftpfile@host
常見檔案修復

將這段文字放在配置檔案前面

2.

couldn't read packet: connection reset by peer

這個問題的原因是chrootdirectory的許可權問題,你設定的目錄必須是root使用者所有,否則就會出現問題。所以請確保sftp使用者根目錄的所有人是root, 許可權是 750 或者 755

linux建立sftp賬號及訪問許可權

首先 你的openssh server版本至少得是4.8p1,因為配置許可權需要版本新增的新配置項chrootdirectory來完成。如何檢視自己伺服器上的ssh版本?大家可以嘗試以下命令 ssh v 步驟 1.我們需要建立乙個使用者組,專門用於sftp使用者 groupadd sftpusers...

sftp賬號建立和許可權設定

操作前需先開啟telnet服務,防止修改sshd config後,sshd服務啟不了 systemctl start telnet.socket建立sftpusers使用者組,專門用於sftp使用者 groupadd sftpusers建立test使用者,將test使用者的shell設定為 sbin...

SSH新增sftp賬號和限制目錄

第1步 新增sftp賬號 useradd m d data www www.com s sbin nologin g root user1 第2步 設定賬號密碼 passwd user1 第3步 修改 etc passwd,將剛新增的使用者級別設定為0.例如 user1 x 1001 0 data ...