如何设置sftp用户使用密码login到EC2 ubuntu服务器?

我有一个在EC2实例上运行的Ubuntu服务器。 要login到该服务器,我使用没有任何密码的证书文件。

我已经安装并configuration了vsftpd并创build了一个用户(我们称他为“testuser”),为此我设置了一个/ bin / false sshterminal,这样他就只能通过sftp连接上传/访问他家的文件目录。

但是 – 当我尝试从我的电脑连接到服务器,运行

sftp testuser@my-ec2-server 

我明白了

权限被拒绝(publickey)。
连接closures

消息,所以我无法login。

我怎样才能删除这个用户的证书要求(也就是说,“Ubuntu的”用户仍然必须使用证书文件通过SSHlogin),所以普通的sftp客户端将能够使用用户名和密码连接?

谢谢。

PS在微型实例上使用Ubuntu Server 10.10的官方AMI,来自规范的64位。

    为了完成你的愿望,你需要做两件不同的事情

    1. 改变sshdconfiguration接受密码

    首先我要说的是这样做是一个坏主意,我宁愿为用户生成一个证书,而不是激活密码,但是如果你想这样做,只需编辑/etc/ssh/sshd_config并修改或取消注释,显示PasswordAuthentication yes 。 一旦完成,重新启动sshd service ssh restart

    1. 让用户使用sftp只用FTP而不用shell

    为了表明你需要安装rsh(resticted shell),并将用户shell改为chsh username

    这里是一步一步的指导,以允许:

    1. SFTP访问/ home / bob /为用户bob上传
    2. locking鲍勃从SSH
    3. 使用用户名/密码而不是密钥:

    首先,编辑你的/ etc / ssh / sshd_config文件:

     sudo nano /etc/ssh/sshd 

    向下滚动并修改:

     PasswordAuthentication yes 

    并在底部添加:

     Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 

    按下Ctrl-X退出并保存。

    现在添加用户:

     sudo useradd bob sudo passwd bob 

    现在添加组并禁用ssh:

     sudo groupadd sftpusers sudo usermod -g sftpusers bob sudo usermod -s /usr/bin/rssh bob sudo usermod -d /home/bob bob 

    现在设置权限:

     sudo chown root:root /home/bob/ sudo chmod 755 /home/bob/ sudo mkdir /home/bob/uploads sudo chown bob /home/bob/uploads sudo service sshd restart 

    所有这些都是以root用户身份login(Amazon Linux AMI上的ec2用户)