这个问题与这个问题非常相关。那里的答案很有用,但不幸的是不完整。如何在 Amazon EC2 Centos 上添加对“/var/www/html/website_abc”文件夹具有 SFTP/FTP 访问权限的用户?
我想授予第三方访问我的 Amazon EC2 实例上部分目录结构的权限。我关注了本教程添加组和用户,然后本教程将此用户 chroot。不过,我不清楚在完成这两个步骤后如何继续。下面是更详细的步骤,以及我遇到的问题。
添加组和用户
在终端:
sudo groupadd sftp
sudo useradd -g sftp thirdparty
sudo usermod -G sftp thirdparty
sudo usermod -s /bin/false thirdparty
sudo chown root:root /var/www/html/exports/thirdparty
sudo chmod 0755 /var/www/html/exports/thirdparty
sudo passwd thirdparty (set password e.g. to abcd)
Chroot 这个用户
将这些行添加到etc/ssh/sshd_config
:
Subsystem sftp /usr/lib/openssh/sftp-server
Match Group sftp
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
ForceCommand /usr/lib/openssh/sftp-server
重新启动 OpenSSH:
/etc/init.d/ssh restart
远程访问
从这一点来看,下一步该做什么还不清楚。教程提到使用 FileZilla,但没有具体说明如何使用。我尝试了以下方法。
尝试 1
Host: 12.34.56.789 (public IP from EC2 Management Console)
Username: thirdparty
Password: abcd
Port:
--> Quickconnect
Status: Connecting to 12.34.56.789:21...
Error: Connection timed out after 20 seconds of inactivity
Error: Could not connect to server
第二次尝试
Host: 12.34.56.789 (public IP from EC2 Management Console)
Username: thirdparty
Password: abcd
Port: 22
--> Quickconnect
FileZilla 警告有关未知主机密钥。我单击“确定”以信任主机并继续连接。我(尚未)将密钥添加到缓存中。
Status: Connecting to 12.34.56.789...
Response: fzSftp started, protocol_version=2
Command: open "[email protected]" 22
Command: Trust new Hostkey: Once
Error: Disconnected: No supported authentication methods available (server sent: publickey)
Error: Could not connect to server
有人能告诉我下一步该怎么做吗?这与 SSH 有关,还是与 AWS 有关(与 VPC 有关)?
答案1
Amazon EC2 默认禁用 SSH 密码验证,而这正是您遇到的情况Attempt 2
。您需要为您的用户设置使用 ssh 密钥登录(好)或更新/etc/sshd_config
以启用密码验证(坏)。