Sea*_*ean 4 ftp sftp amazon-ec2 apache-2.2
我是一个彻头彻尾的 Apache 菜鸟,经过一番折腾和咬牙切齿之后,终于在被动模式下通过 SFTP 访问了新的 EC2 实例。只能以没有密码的“ec2-user”或“root”身份登录,但不能使用我的用户名和/或密码...我在 /home/admin、/home/ec2-user 中创建了一个 .htaccess 文件,和 /home/myusername 目录...我已经根据这些调整调整了 /etc/httpd/conf/httpd.conf、/etc/vsftpd/vsftpd.conf 以及更改了 AWS 安全组设置和端口/协议,并为上述每个用户目录创建了 .ssh/authorized_keys 文件。我无法通过 FTP 客户端 (Filezilla) 从本地机器拖放到 EC2 实例,所以显然,虽然我可以以 ec2-user 身份登录,但我没有写权限。怀疑我需要吃...东西?
我正在使用这里推荐的 vsftpd 设置
关于我需要更改什么以便 1) 以“myusername”而不是“ec2-user”或“root”身份通过 Filezilla 登录的任何想法?
PS:我已经安装了大部分相关的 AWS 命令行工具并且可以正常运行......
您已经提到(并且可能混淆)了一些不同的事情-不幸的是,您的目标还不是很清楚。
vsFTPd 可以设置为使用本地用户。这样做:
对于 SFTP(不使用 vsftpd!):
现在对于您面临的权限问题:
因此,您的选择是:
我的建议是带有证书的 SFTP,以及 /var/www/html 下的主目录
免责声明:使用证书比使用密码更安全 - 您应该禁用 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
Run Code Online (Sandbox Code Playgroud)
由于 sftp-server 不会在您的 chroot 路径中,我们需要对其进行更改:更改(在 sshd_config 中):
Subsystem sftp /usr/libexec/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
到:
Subsystem sftp internal-sftp
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到 sshd_config 的末尾(例如,将路径替换为 /var/www):
Match User USERNAME
ChrootDirectory /path/to/restrict/to
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Match
Run Code Online (Sandbox Code Playgroud)
重启 SSH:
service sshd restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9448 次 |
| 最近记录: |