linux ubuntu 10.04 LTS x64 openssh sftp 配置

linux ubuntu 10.04 LTS x64 openssh sftp 配置

具有以下软件的Linux服务器:

- Ubuntu 10.04 LTS x64
- Linux kernel 2.6.38

需要以下配置/软件:

- SSH through rsa key authentication
- SFTP with the following properties:
    - Single user
    - Access to ONLY /var/www (no home directory what so ever)
    - Rsa key authentication

服务器将连接到互联网,因此需要确保安全。我该如何正确做到这一点?我被 SFTP 用户的配置难住了,他可以访问 FTP,但不能写入任何内容,也不能下载。我想我对 chown 做了一些错误,或者权限设置不正确,我就是搞不清楚是什么导致了这个问题。

sudo apt-get install openssh-server

sudo mkdir /var/www
sudo groupadd sftp_users
sudo useradd -d "/var/www" --groups sftp_users -s /bin/false -p '!' "root_sftp"
sudo passwd root_sftp

sudo chmod 751 /var/
sudo chmod 770 /var/www
sudo chown root:root_sftp /var/www

sudo nano /etc/ssh/sshd_config

在 sshd_configuration 文件中添加/更改了以下内容

PermitRootLogin no
AuthorizedKeysFile /etc/ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication yes

Subsystem sftp internal-sftp

Match User root_sftp
        ChrootDirectory /var/www
        ForceCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no
        PermitRootLogin no
        AllowAgentForwarding no

现在问题再次出现,用户可以使用密钥登录,SSH 也能正常工作,但 SFTP 无法正常工作。

用户可以使用 SFTP 登录(我使用了 filezilla),但无法上传等。看来用户只有执行位(--x 或 1)

我真的希望有人能帮助我,我已经花了很长时间来配置。感谢您的帮助和时间。

提取 root、/var 和 /var/www 的权限

# ls -lad / /var /var/www
drwxr-xr-x 22 root root               4096 2012-03-13 22:59 /
drwxr-x--x 15 root root               4096 2012-03-13 23:04 /var
drwxrwx---  3 root root_sftp 4096 2012-03-13 23:15 /var/www

/var/www 目录是空的。

答案1

以 root 身份:

mkdir /var/www/files
chown root_sftp:sftp_users /var/www/files

您的 SFTP 用户是否可以将文件放入 chroot 下显示的 /files 中?我记不清了,但我认为由于 chroot jail,您将无法对明显的 / 进行写入。

更新:

啊,它实际上是在 sshd_config 的手册页中:

 ChrootDirectory
         Specifies a path to chroot(2) to after authentication.  This path, and all its components, must
         be root-owned directories that are not writable by any other user or group.

因此,您在 /etc/ssh/sshd_config 中指定为 ChrootDirectory 的内容不可写入。您可以重新考虑目录设置,因此您的网站的文档根目录是 /var/www/example.com,其中 example.com 子目录可由 SFTP 用户写入。

相关内容