无法在 ec2 中设置 sftp

无法在 ec2 中设置 sftp

我尝试按照以下说明在 AWS EC2 中设置 sftphttps://silicondales.com/tutorials/aws-ec2-tutorials/setup-ftp-sftp-aws-ec2-instance/

我已经完成以下步骤

  1. 启动了新的 EC2 实例
  2. 以 ec2-user 身份登录
  3. 安装 vsftpd
  4. 通过自定义 TCP 规则更新安全组规则 - 端口范围 20-21 和 1024-1048
  5. 在 /etc/vsftpd/vsftpd.conf 中进行了以下更改

    anonymous_enable=NO
    pasv_enable=YES
    pasv_min_port=1024
    pasv_max_port=1048
    pasv_address=[MY PUBLIC IP]
    chroot_local_user=YES
    
  6. 创建新用户并设置密码

    adduser silicondales
    passwd silicondales
    
  7. 重新启动 /etc/init.d/vsftpd restart。我收到消息,表示成功

完成所有这些后,我尝试从本地机器连接

sftp -oPort=1024 <username>:<password>@<public ip address> 出现ssh: connect to host <Public_IP> port 1024: Connection refused错误。我无法弄清楚这个问题。请帮我解决这个问题

答案1

已在运行的 SSH 提供 SFTP。您登录 SSH 时使用的密钥也可用于 SFTP 登录。SFTP 服务由 SSH 提供,SSH 是允许您登录的同一软件。

您可以添加用户并允许他们通过 SFTP 登录。例如,这可以更轻松地创建仅有权访问您的 webroot 的用户。我有一篇关于 Amazon Linux 的文章我的博客,其中包括一些图片。主要部分是

创建新用户

sudo su
sudo useradd fred
passwd fred

创建新的密钥对

su fred
ssh-keygen -f rsa

mkdir .ssh

touch .ssh/authorized_keys
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

cat fred.pub >> /home/fred/.ssh/authorized_keys

允许用户登录

vi /etc/ssh/sshd_config
PasswordAuthentication no
AllowUsers ec2-user fred

答案2

好的,要回答这个问题,需要澄清一些事情:vsftpd实现 FTP 协议。sftp 才不是实现 FTP 协议。尽管名称中包含“ftp”,但除了在客户端模拟 FTP 行为外,与 FTP 几乎没有任何关系。如果您想使用 sftp,则不需要 vsftpd。相反,sftp使用您的服务器上可能已经存在的 SSH 服务器。

从网络和安全角度来看,ssh/sftp很多比 vsftpd 更安全、更易于维护ftps(这是 vsftpd 可以提供的),除非你有很好的理由不使用sftp,抛弃它vsftpd。你不需要它。

相关内容