标签: sftp

如何将具有 SFTP/FTP 访问权限的用户添加到 Amazon EC2 Centos 上的“/var/www/html/website_abc”文件夹?

可能重复:
Linux 目录权限

我正在与一些第三方开发人员合作,我想授予 SFTP(或 FTP)访问他们正在处理的网站的根文件夹的权限,'/var/www/html/website_abc'以便他们可以将文件上传到那里。请注意,我在同一个 EC2 实例上托管我的其他网站,例如'/var/www/html/website_xyz'.

只是为了强调我在 1 个 EC2 实例上使用多个网站,网站的结构如下:

/var/www/html/
/var/www/html/website_abc
...
/var/www/html/website_xyz

我的目标如下:

  • 用户“adeveloper”可以访问“/var/www/html/website_abc”,并且只能访问“/var/www/html/website_abc”
    • 我想用户 'adeveloper' 将使用 'adeveloper@[my elastic IP]' 作为登录 SFTP(或 FTP)的用户名,对吗?
  • 用户“adeveloper”无权访问“/var/www/html/”或我的 EC2 实例中的任何其他目录
  • 私钥文件呢?
    • 我是否将我的私钥文件传递给第三方开发人员 - 这样做是否可取?
    • 有没有办法为他们生成不同的私钥文件或允许他们使用用户名和密码登录?

我已经进行了搜索,但大多数人都在谈论如何通过 SFTP 访问 EC2,而我已经能够使用 WinSCP。

说明:

  • 我需要“开发人员”才能上传/var/www/html/website_abc具有“写”权限的内容
  • 我需要“adeveloper”对 下的任何文件/目录没有“写”权限/var/www/html/,理想情况下甚至没有“读”权限
  • 然而,这里似乎有一个大问题:
    • /var/www/html/已经拥有权限 777,因为这是我的 DocumentRoot 文件夹。那么,如何阻止“adeveloper”访问我的其他网站?

部分解决 了我使用 OpenSSH 设法实现了我的目标(我在 /var/www/html/website_abc/ 中创建了 .ssh 文件夹并生成私钥并将其提供给第三方开发人员)。我还了解到我永远不应该提供 AWS 给我的私有密钥文件。仍在学习 chroot。

centos ftp sftp amazon-ec2 amazon-web-services

19
推荐指数
1
解决办法
9万
查看次数

OpenSSH 类似于“内部 sftp”,但对于 SCP?

我正在运行 Debian stable,我希望为我的 'sftponly' 组中的用户建立以下环境:

  • 入狱
  • 可以用SFTP传输
  • 可以用SCP转移
  • 无法使用 SSH 交互登录

从我的实验和研究来看,sshd_config 中的以下节似乎让我达到了 90%:

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

这给了我监禁的 SFTP 而没有 SSH,这很好。但它也禁用了 SCP,这不太理想,因为很多客户端是使用 SCP 而不是 SFTP 的遗留脚本进程(我们正在替换的服务器支持这两种协议),并且因为这些客户端不受我们的控制并且很容易修改后,完全禁用 SCP 可能不切实际。

此配置将禁用 SCP 是有道理的,因为传入的 SCP 连接会导致 sshd 以该用户的身份通过用户的登录 shell 生成一个“scp”进程。如果不是特殊的“internal-sftp”处理程序,SFTP 似乎通常也是如此。

所以,我想我的问题是:有没有一种方法可以达到与“internal-sftp”相同的效果,但对于 SCP,而不使用像 scponly 和 rssh 这样的第三方工具?'internal-sftp' 的真正好处在于它不需要用支持文件设置监狱,或处理可能被利用的第三方 setuid 二进制文件(特别是 rssh,它有被利用的历史)。

ssh jail chroot sftp scp

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

如何设置 sftp 用户使用密码登录 EC2 ubuntu 服务器?

我有一个运行在 EC2 实例上的 Ubuntu 服务器。要登录到该服务器,我使用没有任何密码的证书文件。

我已经安装并配置了 vsftpd 并创建了一个用户(让我们称他为“testuser”),我已经为其设置了一个 /bin/false ssh 终端,因此它只能通过 sftp 连接并上传/访问他家中的文件目录。

但是 - 当我尝试从我的计算机连接到服务器时,运行

sftp testuser@my-ec2-server
Run Code Online (Sandbox Code Playgroud)

我得到

权限被拒绝(公钥)。
连接关闭

消息,所以我无法登录。

如何仅删除此用户的证书要求(意味着“ubuntu”用户仍必须使用证书文件通过 ssh 登录),以便普通 sftp 客户端能够使用用户名和密码进行连接?

谢谢你。

PS 使用来自规范的 Ubuntu Server 10.10 官方 AMI,在微型实例上 64 位。

ubuntu cloud-computing certificate sftp

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

在 CentOS 上创建 SFTP 用户并监禁到 chroot - 用户身份验证错误

我有一个带有 Digital Ocean 的 CentOs 6.4 版,我想成功创建 SFTP 用户并将它们囚禁到用户自己的 chroot 主目录中,但我担心我会把它弄得一团糟。

我已经尝试了很多事情,太多了,无法在这里列出,因为大多数可能不正确或没有多大意义,但我觉得应该是正确的过程,我尝试过的是:-

创建一个组sftp:-

groupadd sftp
Run Code Online (Sandbox Code Playgroud)

创建一个用户并设置他们的主目录:-

useradd -d /var/www/vhosts/domain.com dummyuser
Run Code Online (Sandbox Code Playgroud)

为用户设置密码:-

passwd dummyuser
Run Code Online (Sandbox Code Playgroud)

将用户组更改为“sftp”:-

usermod -g sftp dummyuser
Run Code Online (Sandbox Code Playgroud)

将用户的外壳设置为/bin/false:-

usermod -s /bin/false dummyuser
Run Code Online (Sandbox Code Playgroud)

sshd_config( /etc/ssh/) 中编辑子系统:-

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到sshd_config文件底部:-

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

我确保以下所有目录都是root:root:-

/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Run Code Online (Sandbox Code Playgroud)

如果我然后尝试通过 SFTP 与用户dummyuser(在 WinSCP 中)登录到服务器,我会得到以下信息:-

Authentication log (see …
Run Code Online (Sandbox Code Playgroud)

sftp centos6.4

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

如何为 Ubuntu 服务器设置 SFTP 的默认权限?

我们有一个 Ubuntu 10.04 服务器。如何设置它以便通过 SFTP 或 SSH 创建(或复制)的新文件具有 g+rw 和 g+rwx 权限(在适当的情况下)?

我也在使用 setgid (chmod g+s) 以便他们继承正确的组所有者。

ubuntu permissions ssh sftp umask

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

设置 sftp 使用密码但 ssh 不使用密码

是否可以使用 openssh 在 ubuntu 上设置用户,以便 ssh 不使用密码身份验证但 sftp 使用?

我假设如果我更改/etc/ssh/ssh_configPasswordAuthentication yes这使得用户可以使用密码同时使用 ssh 和 sftp 登录。

编辑:我的目的是让一些用户使用密码而不是密钥文件进行 sftp。但我不希望 ssh 用户能够使用密码登录,我希望他们必须使用密钥文件。如果有帮助,我不需要 sftp 用户才能登录,他们只需要执行 sftp。

ubuntu ssh sftp

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

如何仅为 sftp 创建用户?

我已经通过该adduser工具向系统添加了一个用户。然后,在 中/etc/passwd,我尝试将/bin/bashto/sbin/nologin或 to更改为/dev/null,但这些都不起作用。

我希望用户没有获得交互式 shell 的选项,而只能使用sftp. 有办法吗?

我知道以前有人问过这里,但似乎没有人给出满意的答复。

linux ssh sftp upload

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

RSYNC 如何做增量备份

如何rsync知道哪些文件已更改,哪些未更改?它是否将其数据记录在文件中的任何位置?

因为我想做增量备份,但首先它会传输所有文件。

所以我的主要问题是:如果我通过 FTP 而不是通过rsync. 请问rsync仍然跳过那些已存在的文件,否则将上载在第一次运行的一切。

backup rsync sftp

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

sftp 上的符号链接和 filezilla

我对 debian 很陌生,我正在尝试设置服务器。

我创建了一个只能访问他的文件夹/home/username(及其子目录)的用户。

现在我想将该用户用于我设置的网络服务器,并且我已经授予他访问权限,/var/www但我无法/var/www通过 sftp看到,我做了一个像这样的符号链接:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *
Run Code Online (Sandbox Code Playgroud)

现在,使用filezilla,我可以看到这样的www文件夹:

档案馆

但是当我尝试打开它时,我得到了这个:

打开

我做错了什么?

debian ftp sftp symbolic-link

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

限制Docker容器的网络访问

我正在创建一个仅限 SFTP 的Docker容器,该容器将由多人使用,其唯一目的是在他们自己的chrooted 环境中上传和管理文件。

从理论上讲,它非常安全:我将禁用所有形式的bash登录,并且不会在其中运行任何其他进程。但是,我想再加强一点:

我想阻止这个容器从内部访问 Internet,除了它作为 SFTP 服务器的目的。

澄清一下:我知道如何防止外部世界访问我的容器——我可以设置传入iptables规则,并且我只能在我的 docker run 命令中公开 SFTP 端口。

但是,当容器运行时,我想让以下命令(作为示例)失败:

curl google.com
Run Code Online (Sandbox Code Playgroud)

我的目的是减少被黑容器可能造成的损害(不能用于发送垃圾邮件等)。

security ssh sftp docker

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