标签: sftp

如何将 sftp-only SSH 用户 chroot 到他们的家中?

我想让客户端访问我的服务器,但我想将这些用户限制在他们的主目录中。我将在我希望他们能够看到的任何文件中进行绑定挂载。

我创建了一个名为的用户bob并将他添加到一个名为 的新组中sftponly。他们在/home/bob. 我已经将他们的 shell 更改/bin/false为停止 SSH 登录。这是他们的/etc/passwd线路:

bob:x:1001:1002::/home/bob:/bin/false
Run Code Online (Sandbox Code Playgroud)

我还更改/etc/ssh/sshd_config了以下内容:

Match Group sftponly
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

当我尝试以他们的身份登录时,这就是我看到的

$ sftp bob@server
bob@server's password: 
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)

如果我注释掉ChrootDirectory我可以 SFTP的行,但他们可以自由控制服务器。我发现这ChrootDirectory /home可行,但它仍然让他们可以访问任何主目录。我已经明确尝试过,ChrootDirectory /home/bob但这也不起作用。

我究竟做错了什么?我怎样才能限制bob/home/bob/

- - 编辑 - - -

好的,所以我只是看了一下/var/log/auth.log,看到了这个:

May  9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened …
Run Code Online (Sandbox Code Playgroud)

ssh sftp chroot

137
推荐指数
3
解决办法
30万
查看次数

如何在 Ubuntu 上设置受限的 SFTP 服务器?

我想知道如何设置 root、sudo、sftp-only 用户帐户,登录时不需要公钥身份验证。我还想知道如何设置 sftp-only 用户的主目录,他们在哪里无法访问上层其他目录。

server sftp openssh

85
推荐指数
2
解决办法
46万
查看次数

如何使用 chroot 用户在其主目录中设置 SFTP 服务器?

我一直在尝试建立一个 SFTP 服务器,让多个用户 chroot 进入他们的主目录。我遵循了本指南Archive.org 链接)上的建议,然后在用户目录上执行了以下命令

chown root:root /home/user/
chmod 755 /home/user/
Run Code Online (Sandbox Code Playgroud)

每个用户的主目录中都有一个名为 的附加文件夹,该文件夹public归其用户所有,以便他们可以根据需要创建目录以及上传和删除文件。(这是在我之前提到的指南中建议的)

现在,当我执行时sftp -P 435 user@localhost,出现此错误:

写入失败:管道损坏
无法读取数据包:对等方重置连接

我如何从这里开始?最终的想法是让其他机器上的每个用户使用 FileZilla 登录到他们的 chroot 主目录,然后能够上传目录和文件。所有这些都在 SFTP 中(因为它更安全)

sftp chroot home-directory

24
推荐指数
3
解决办法
13万
查看次数

对 www-data 拥有的文件的 SFTP 权限被拒绝

我有一个运行 Apache 和 PHP 的非常标准的服务器设置。我正在运行的应用程序创建文件,这些文件归 Apache 用户所有www-data。我通过 SFTP 上传的文件归我自己的用户所有charlesr。所有文件都是该www-data组的一部分。我的问题是我无法通过 SFTP 修改或覆盖由 拥有的任何文件www-data,即使charlesr是该www-data组的一部分。我可以通过 SSH 会话毫无问题地修改文件。

所以我不知道该怎么做。如何授予我的 SFTP 会话权限以修改www-data拥有的文件?

对于一些背景知识,这些是我在设置服务器时为自己写的笔记:

Now set up permissions on `/var/www` where your files are served from by
default:

$ sudo adduser $USER www-data
$ sudo chgrp -R www-data /var/www
$ sudo chmod -R g+rw /var/www
$ sudo chmod -R g+s /var/www

Now log out and log in again to make the …
Run Code Online (Sandbox Code Playgroud)

permissions apache2 sftp

23
推荐指数
2
解决办法
8万
查看次数

我应该将我的 /var/www 目录符号链接到我的家吗?

我刚刚安装了带有 LAMP 设置的 Ubuntu Server 10.04。我想在那里托管一个网站,但我不确定哪个是在服务器上获取/编辑我的文件的最佳方式。谷歌搜索提供了很多选择,但我不确定哪个是最好的?

除非有更好的选择,否则我想在另一台 PC(Windows 或 Linux)上创建页面并使用 SFTP 将更改同步到服务器 - 但我是对 ~/ 中的符号链接文件夹执行此操作还是通过更改权限在 /var/www/ 文件夹上?

lamp webserver sftp

21
推荐指数
2
解决办法
2万
查看次数

使用“连接到服务器”通过 SFTP 连接以访问远程服务器中的文件夹

如何使用 ubuntu 的“连接到服务器”选项连接到我的远程 sftp 帐户?当我的屏幕上出现“连接到服务器”对话框时,“服务类型”只显示:

  • FTP(带登录)
  • 公共FTP

这些是我可以在下拉列表中看到的唯一 FTP 选项。没有 SFTP 选项?

ssh remote-access sftp lan

21
推荐指数
2
解决办法
7万
查看次数

sshfs 给出“远程主机已断开连接”

我正在尝试sftp使用sshfs以下命令将连接安装到文件夹中,该命令会引发错误。

~$ sshfs admin@example.com:/ testfo
remote host has disconnected
Run Code Online (Sandbox Code Playgroud)

如果我通过 SSH 进入系统并用 重复该命令,则会发生同样的错误localhost。此命令也适用于另一台机器,因此问题出在服务器上。

~$ cat /var/log/auth.log

[...]

May 24 22:49:43 example sshd[20095]: Accepted publickey for admin from 24.111.222.33 port 47086 ssh2: RSA ad:xx:6e:xx:14:xx:bd:b5:xx:cb:66:xx:xx:xx:a3:ac
May 24 22:49:43 example sshd[20095]: pam_unix(sshd:session): session opened for user admin by (uid=0)
May 24 22:49:43 example systemd-logind[812]: Removed session 60.
May 24 22:49:43 example systemd-logind[812]: New session 61 of user admin.
May 24 22:49:44 example sshd[20143]: Received disconnect from 24.203.164.45: …
Run Code Online (Sandbox Code Playgroud)

ssh networking sshfs sftp vsftpd

18
推荐指数
3
解决办法
3万
查看次数

是否可以使用 sftp 完成选项卡?

有时我需要快速将文件从远程服务器复制到本地计算机。这是我目前的工作流程:

  1. 我通过 SSH 连接到我的远程服务器,找到该文件并复制其完整路径。
  2. 我打开新的终端选项卡并输入:

sftp user@hostname:/path/to/file (其中 /path/to/file 是我之前复制的路径)

这不是很痛苦,但如果我可以跳过第 1 步并在键入 sftp 命令时直接使用制表符完成找到文件的路径,那就太好了。

为了说明这一点,我可以开始输入sftp user@hostname:/pressTAB并获取 / 中的文件夹列表。然后我可以继续输入hopress TAB,它会自动完成home,等等。

我不确定这样的功能是否存在,否则理论上是否可以按照描述编写自定义选项卡完成脚本?关于从哪里开始的任何指示?

command-line sftp auto-completion

17
推荐指数
2
解决办法
2万
查看次数

如何在 cURL 中启用 SFTP 支持?

我已经安装了 curl-7.27.0,它工作正常。但是,当我运行时curl -V,我得到:

curl 7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
Run Code Online (Sandbox Code Playgroud)

如何启用 SFTP 协议?

sftp curl

17
推荐指数
3
解决办法
3万
查看次数

更改被监禁的 SFTP 的写入权限会拒绝登录

我已经搜索了许多网站和论坛,了解如何使用 CHROOT 设置被监禁到某个目录的 SFTP 用户。以下是我遵循的步骤,但我似乎无法获得工作的写入权限。

设置

sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp


Match group webmaster
        X11Forwarding no
        ChrootDirectory %h
        AllowTcpForwarding no
        ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

创建文件夹

mkdir /var/www/sites
Run Code Online (Sandbox Code Playgroud)

创建用户和组

useradd uploader
passwd uploader
usermod -d /var/www/sites uploader
groupadd webmaster uploader
groupadd www-data uploader
Run Code Online (Sandbox Code Playgroud)

权限和所有权

chown root:root /var/www
chmod 755 /var/www/sites
Run Code Online (Sandbox Code Playgroud)

现在,通过这些设置,用户上传者可以通过 SFTP 进入主目录,但无法写入该目录。

发生了 2 个典型错误,我要么无法登录,要么没有写入权限。

登录错误

Error:    Network error: Software caused connection abort
Error:    Could not connect to server


Changing permissions of /var/www/sites to 775 or 777 causes login error. …
Run Code Online (Sandbox Code Playgroud)

permissions sftp chroot

16
推荐指数
1
解决办法
6万
查看次数