我是一个完全的Apache noob,经过大量的拔毛和咬牙切齿,终于使SFTP以被动模式访问新的EC2实例。 只能以“ec2-user”或“root”身份login,无需密码,但不能使用myusername和/或password …我已经在/ home / admin,/ home / ec2-user创build了一个.htaccess文件,和/ home / myusername目录…我已经调整了/etc/httpd/conf/httpd.conf,/etc/vsftpd/vsftpd.conf以及根据这些调整更改了AWS安全组设置和端口/协议,并为每个上述用户目录创build.ssh / authorized_keys文件。 我不能通过FTP客户端(Filezilla)从本地机器拖放到EC2实例,显然,虽然我可以以ec2用户身份login,但我没有写入权限。 怀疑我需要chown …什么东西?
我正在使用这里推荐的vsftpd设置
任何想法,我需要改变,以便1)通过Filezilla作为“myusername”而不是“ec2-user”或“root”login?
PS:我已经安装了大多数相关的AWS命令行工具并且function正常
你已经提到(也可能混淆了)一些不同的东西 – 所以你的目标不太清楚,不幸的是。
vsFTPd可以设置为使用本地用户。 要做到这一点:
对于SFTP(不使用vsftpd!):
现在针对您所面临的权限问题:
因此您的select是:
我的build议是使用证书的SFTP和/ var / www / html下的主目录
在Amazon的Linux上添加SFTP用户的特定命令:
免责声明:使用证书比使用密码更安全 – 并且应该禁用PasswordAuthentication。
#Add the shell echo /usr/libexec/openssh/sftp-server >> /etc/shells #Create a user with the shell, I have not setup a home folder useradd -M -s /usr/libexec/openssh/sftp-server USERNAME #Set the password passwd USERNAME Edit /etc/ssh/sshd_config: Change: PasswordAuthentication no to PasswordAuthentication yes (line 69), save and quit #Restart SSH service sshd restart
限制你的用户到一个目录(即chroot):
由于sftp服务器不在你的chrootpath中,我们需要改变它:改变(在sshd_config中):
Subsystem sftp /usr/libexec/openssh/sftp-server
至:
Subsystem sftp internal-sftp
将以下内容添加到sshd_config的末尾(将pathreplace为/ var / www):
Match User USERNAME ChrootDirectory /path/to/restrict/to AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp Match
重新启动SSH:
service sshd restart