我有一个在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位。
为了完成你的愿望,你需要做两件不同的事情
首先我要说的是这样做是一个坏主意,我宁愿为用户生成一个证书,而不是激活密码,但是如果你想这样做,只需编辑/etc/ssh/sshd_config并修改或取消注释,显示PasswordAuthentication yes 。 一旦完成,重新启动sshd service ssh restart
为了表明你需要安装rsh(resticted shell),并将用户shell改为chsh username
这里是一步一步的指导,以允许:
首先,编辑你的/ 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用户)