如何设置sftp用户以使用密码登录EC2 ubuntu服务器?


14

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

我已经安装并配置了vsftpd,并创建了一个用户(我们称其为“ testuser”),为此我已经为其设置了/ bin / false ssh终端,因此该终端只能通过sftp进行连接,并可以在其家中上传/访问文件目录。

但是-当我尝试从计算机连接到服务器时,正在运行

sftp testuser@my-ec2-server

我懂了

权限被拒绝(公钥)。
连接已关闭

消息,所以我无法登录。

如何仅删除该用户的证书要求(意味着,“ ubuntu”用户仍将必须使用证书文件通过ssh登录),因此普通的sftp客户端将能够使用用户名和密码进行连接?

谢谢。

PS在微型实例上使用标准的64位标准的Ubuntu Server 10.10官方AMI。

Answers:


10

为了完成您想要的,您需要做两件事

  1. 更改sshd配置以接受密码

首先,我要说这不是一个好主意,我宁愿为您的用户生成一个证书而不是激活密码,但是,如果您要这样做,则只需对其进行编辑/etc/ssh/sshd_config和更改或取消注释就可以了PasswordAuthentication yes。完成后,重新启动sshdservice ssh restart

  1. 让用户仅使用sftp进行FTP而没有外壳

为了完成该操作,您需要安装rsh(受限制的外壳)并将用户外壳更改为该外壳 chsh username


我只希望该仅具有sftp访问权限的特定用户(测试用户)使用密码而不是证书。在不允许该用户通过ssh访问的部分中,我已经通过将其bash类型定义为/ bin / false来做到这一点
Doron

1
多伦(Doron),您将不能只允许一个用户通过passwd,而是允许所有人或没有人进行密码身份验证。也/bin/false不允许sftp连接(任何ssh连接都需要有效的shell,这是rsh的诀窍)
lynxman 2011年

1
这在Ubuntu EC2上对我不起作用,不确定我缺少的额外步骤是什么,端口22已打开
Doug Molineux

请参阅serverfault.com/questions/154957/…以仅使用密码设置sftp用户...
Raman

-1

以下是逐步指导,允许您执行以下操作:

  1. 通过SFTP访问用户bob的/ home / bob / uploads
  2. 将鲍勃锁定在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用户(Amazon Linux AMI上的EC2用户)登录时进行的


3
无需放下裤子,仅允许一个用户使用密码验证。
EEAA
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.