Pregunta ¿Cómo configuro un usuario sftp para iniciar sesión con una contraseña para un servidor ubuntu EC2?


Tengo un servidor de Ubuntu ejecutándose en una instancia de EC2. Para iniciar sesión en ese servidor, uso un archivo de certificado sin ninguna contraseña.

Instalé y configuré vsftpd y creé un usuario (llamémoslo "testuser") para el cual configuré un terminal / bin / false ssh para que solo pueda conectarse a través de sftp y cargar / acceder a archivos en su casa directorio.

Sin embargo, cuando intento conectarme al servidor desde mi computadora, ejecutando

sftp testuser@my-ec2-server

yo obtengo

Permiso denegado (publickey).
  Conexión cerrada

mensajes, así que no puedo iniciar sesión.

¿Cómo puedo eliminar el requisito de certificado solo para este usuario (lo que significa que el usuario "ubuntu" todavía tendrá que usar el archivo de certificado para iniciar sesión a través de ssh), por lo que los clientes normales de sftp podrán conectarse usando un nombre de usuario y una contraseña?

Gracias.

PD Utilizando Ubuntu Server 10.10 AMI oficial de Canonical, 64 bits en una micro instancia.


13
2018-02-05 15:03


origen




Respuestas:


Para lograr lo que deseas, debes hacer dos cosas diferentes

  1. Cambiar sshd config para aceptar contraseñas

En primer lugar, debo decir que es una mala idea hacer esto. Prefiero generar un certificado para su usuario que activar las contraseñas, pero si lo desea, solo edite /etc/ssh/sshd_config Y cambiarlo o descomprimirlo para que se vea. PasswordAuthentication yes. Una vez hecho esto reinicie sshd service ssh restart

  1. Deje que los usuarios solo usen FTP con sftp y no tengan shell

Para poder cumplir con la necesidad de instalar rsh (shell restringido) y cambiar el shell del usuario chsh username


10
2018-02-05 16:29



Solo quiero que este usuario específico (usuario de prueba) que solo tendrá acceso sftp, use una contraseña en lugar de un certificado. La parte de no permitir que el usuario acceda a través de ssh, ya lo hice definiendo su tipo de bash como / bin / false - Doron
Doron, no podrá permitir solo un usuario a través de contraseña, o bien permitir la autenticación de contraseña para todos o para nadie. también /bin/false no permitirá conexiones sftp (cualquier conexión ssh necesita un shell válido, ahí es donde rsh hace el truco) - lynxman
Esto no me funcionó en Ubuntu EC2, no estoy seguro de cuál es el paso adicional que me falta, el puerto 22 está abierto - Doug Molineux
Ver serverfault.com/questions/154957/… para configurar solo el usuario sftp con una contraseña ... - Raman


Aquí hay una guía paso a paso para permitir:

  1. Acceso SFTP a / home / bob / uploads para el usuario bob
  2. Bloquear bob fuera de SSH
  3. Usar nombre de usuario / contraseñas en lugar de claves:

Primero, edite su archivo / etc / ssh / sshd_config:

sudo nano /etc/ssh/sshd

Desplácese hacia abajo y modifique:

PasswordAuthentication yes

y añadir esto en la parte inferior:

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

Presione Ctrl-X para salir y guardar.

Ahora agregue el usuario:

sudo useradd bob
sudo passwd bob

Ahora agregue los grupos y deshabilite ssh:

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

Ahora establece permisos:

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

Todo esto mientras está conectado como usuario root (usuario ec2 en las AMI de Amazon Linux)


-1
2017-07-25 23:39



No es necesario que te caigas los pantalones solo para permitir que un usuario use la contraseña. - EEAA