Articles of SFTP

如何在SSH中限制除某个组以外的所有人?

我想限制服务器上的所有用户只能使用SFTP,而pipe理员组的成员应该具有完全的SSH访问权限。 我发现可以通过使用Match Group和ForceCommand来限制组的成员。 但我没有发现任何逻辑上的否定。 所以我试图反向构build它: # SFTP only, full access only for admin group X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp Match Group admin X11Forwarding yes AllowTcpForwarding yes ForceCommand /usr/local/sbin/ssh-allowcmd.sh 并构build了一个脚本ssh-allowcmd.sh ,用于执行给定的命令或/bin/bash以进行交互式访问。 有更好的解决scheme吗?

通过Putty工具通过SSH复制比通过WinSCP慢

使用PuTTY工具从我的Windows PC(1)上传到另一个城市的Ubuntu机器(2)很慢。 我testing了这个OpenVPN隧道,并通过端口转发到(2)。 事实certificate,通过SSH(plink.exe)或pscp.exe使用rsync(Unison)比在(1) – >(2)方向上使用WinSCP(SCP或SFTP)复制速度慢70%。 下载速度相同。 这里有一些数据: link protocol software source target max speed (kb/s) theoretical speed 4.5mbits 1 2 560 theoretical speed 6.0mbits 2 1 750 VPN SFTP pscp.exe 1 2 180 <- not ok VPN SFTP pscp.exe 2 1 640 VPN SFTP winscp 1 2 570 <- ok VPN SFTP winscp 2 […]

SSH – 尝试强制内部sftp时无法启动sftp-server

我遇到了麻烦,迫使用户只能通过ssh连接时使用sftp。 我在/ etc / ssh / sshd_config中有以下几行: Subsystem sftp /usr/libexec/openssh/sftp-server Match user USERNAME ForceCommand internal-sftp 但是,当我尝试通过SFTP连接,我得到的错误: error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory subsystem request for sftp failed, subsystem not found 但是,文件/ usr / libexec / openssh / sftp-server确实存在,似乎工作正常。 如果我不尝试强制连接sftp,那么我可以很好地ssh,所以SSH守护进程似乎正在处理的东西,但迫使sftp不是。 有没有人有什么build议? 我试过寻找答案,但所有我find的解决scheme似乎是关于sftp服务器不在正确的位置。 对我来说,这个文件肯定是存在的。 我正在使用CentOS 6和OpenSSH 5.3p1。 感谢您的帮助。

如何让多人通过SFTP更改文件的mtime-timestamp?

我有一个多个用户有权访问的目录。 他们更改,上传和删除目录中的文件。 他们都属于同一个用户组。 目录中的文件的访问权限为660。 问题是用户不能设置文件的修改时间,如果他们不是该文件的所有者。 例如,用户AAA上传“EXAMPLE.jpg”文件,BBB用户下载,修改并重新上传。 该文件的“上次修改”时间戳将是BBB上传的时间,而不是上次修改时间。 我试图设置文件的权限为777,但它没有帮助。 这个问题在sftp-logs中显示为: Dec 5 16:37:08 servername sftp-server[695]: open "/shared_directory/EXAMPLE.jpg" flags WRITE,CREATE,TRUNCATE mode 0666 Dec 5 16:37:08 servername sftp-server[695]: close "/shared_directory/EXAMPLE.jpg" bytes read 0 written 42765 Dec 5 16:37:08 servername sftp-server[695]: set "/shared_directory/EXAMPLE.jpg" modtime 20111205-15:53:31 Dec 5 16:37:08 servername sftp-server[695]: sent status Permission denied 在这种情况下,Winscp会抱怨Upload of file 'example.jpg' was […]

与chroot的SFTP取决于连接用户的公钥

我想build立一个服务器(运行Debian或FreeBSD),通过sshfs从不同的客户端接收备份。 每个客户端应该能够读取和写入自己的备份数据,但不能读取任何其他客户端的数据。 我有以下想法:每个客户端通过公钥validation连接到[email protected]。 用户备份有一个特殊的authorized_keys文件,如下所示: command="internal-sftp" chroot="/backup/client-1/data" ssh-rsa (key1) command="internal-sftp" chroot="/backup/client-2/data" ssh-rsa (key2) command="internal-sftp" chroot="/backup/client-3/data" ssh-rsa (key3) etc… 这样做的好处是我不需要为每个客户端使用一个单独的用户,我可以很容易地用脚本自动生成authorized_keys文件。 只有一个问题: chroot=…不起作用。 OpenSSH的authorized_keys文件似乎没有ChrootDirectory(可在全局或匹配用户块中的/ etc / ssh / sshd_config中工作)的等效项。 有一个相当简单的方法来完成我想要使用OpenSSH? 也许用巧妙的方式使用command=…指令? 另外,还有其他的SFTP服务器可以做我想要的吗? 编辑 :为了更清楚我想实现什么:我想要几个客户端能够存储在我的服务器上的文件。 每个客户端都不应该能够看到其他客户端的文件。 而且我不想用几十个用户帐户来清理我的服务器,所以我想要一个易于pipe理的解决scheme,让客户共享一个用户帐户,并且仍然无法访问彼此的文件。

如何设置由S3(或类似的)支持的SFTP服务器

我需要build立一个基本上具有非常大容量的SFTP服务器。 我需要给我们的一个合作伙伴的SFTPlogin细节到一个服务器,他们将上传数百万个文件,总计几百太字节。 然后我会select性的,很less阅读这些文件。 这是唯一的实际要求,任何技术select都是抢手的。 最简单的方法是让某些EC2实例运行SFTP服务器,使得上传的任何内容直接发送到S3,或者某种进程在上传时发现新文件,将它们复制到S3,并从磁盘上删除它们。 这是最好的方法吗? 有没有其他的方式来获得本质上具有“无限和不断增长的磁盘空间”的服务器? 谢谢你的帮助! 丹尼尔

SSH使用VIP的主机密钥validation问题

VIP上有两台生产服务器,一次只能使用一台,例如: myservice.mycompany.uk通常指向server1,如果server1发生故障,它将更改为指向server2。 还有一些服务器需要通过SFTP将文件发送到myservice.mycompany.uk,如果我们故障转移到server2,它们应该是完全透明的。 问题是,虽然在服务器1和服务器2上安装了密钥,但由于服务器2的主机密钥与服务器1的主机密钥不同,因此其他服务器将具有主机密钥validation问题。 这会导致安全错误(因为严格检查),并且必须从known_hosts中移除一行以使其正常工作。 我们的IT人员build议我们可以在known_hosts中创build2个条目,其中一个使用server1的密钥,另一个使用server2,两者都使用myservice.mycompany.uk主机。 这是否有可能工作? 这怎么能在windows上用putty / psftp来完成呢? 由于主机密钥存储在registry中,因此不允许使用重复名称。 有没有更好的方法,例如,我们可以强制服务器具有相同的主机密钥?

添加“匹配组”子句后sftp / ssh失败

我正在尝试在ubuntu /精确的EC2上build立一个sftp服务器。 我已经成功地添加了一个可以通过ssh连接的新用户,但是一旦添加了以下子句: Match Group sftp ChrootDirectory /home/%u AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp 我不能再连接(根本不用,SSH或其他),我得到的消息 Error: Connection refused Error: Could not connect to server 我能够连接子系统设置为: #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp 任何想法为什么SSH服务器失败,这个“匹配”条款? 基本上,除了“chroot”部分外,所有的东西都在工作。

如何将数据传输到sftp连接?

ftp支持put "|…" "remote-file.name"命令来pipe理数据到一个ftp连接。 有什么类似的可用于SFTP? 在sftp我得到以下错误: sftp 'jmw@backupsrv:/uploads' sftp> put "| tar -cx /storage" "backup-2012-06-19–17-51.tgz" stat | tar -cv /storage: No such file or directory 如上所述,sftp客户端显然不执行该命令。 我想使用pipe道命令直接将文件streamredirect到SFTP。 (因为在上传到sftp服务器之前没有足够的空间在同一磁盘上创build备份文件。)

Windows机器上SFTP服务器的选项

我们有一个客户希望通过SFTP发送文件给我们(引用FTP本质上是不安全的)。 我们有一个Windows环境(Windows 2003 Server)。 目前,我正在审查copssh(OpenSSH for Windows, http://www.itefix.no/i2/copssh ),并且正在寻找替代品,或者对于copssh或Windows的任何其他SFTP选项的想法。 设置和pipe理越简单越好。 我从来没有设置SFTP主机,所以我很好奇你会推荐什么。