Estoy comenzando una pequeña empresa de alojamiento para algunos amigos y pequeños clientes, nada grande.
Quiero dar a mis "clientes" el derecho de administrar sus archivos en el servidor. Odio el FTP ya que no es seguro y, en mi opinión, es obsoleto.
Por lo tanto, me gustaría permitir que mis usuarios se conecten a través de SFTP pero no permitir que se conecten a través de SSH. (Lo sé, lo sé, SFTP está usando SSH). Pero me preguntaba, ¿es posible?
¡Entonces no tendría que instalar un servicio FTP en el servidor y todo sería increíble!
Hay una cáscara scponly qué hace esto. También puede chroot .
fuente
Checkout rssh, que es un shell falso que permite sftp pero niega ssh
Más acerca de RSSH
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
Puede configurar rssh para permitir / denegar diferentes comportamientos como sft, scp, etc.
fuente
Puede modificar / etc / passwd y darle a ese usuario un shell falso para que no pueda usar ssh.
fuente
/bin/false
ni ssh ni sftp funcionenUtilizo el método de especificar el shell de usuario como / bin / false como se mencionó. Sin embargo, debe asegurarse de que / bin / shell esté en / etc / shells. Entonces funciona ssh = no ftp = ok.
También uso vsftpd y agrego este
chroot_local_user = YES a /etc/vsftpd/vsftpd.conf para que los ftp-ers no puedan ver la fecha más que la suya.
La ventaja de estos cambios simples es que no hay una configuración molesta para la configuración ssh para cada usuario.
fuente
No olvides encontrar la línea
UsePAM yes
y comentarla:Sin deshabilitar esto, su servidor SSH se bloqueará al recargar / reiniciar. Como no necesita funciones sofisticadas de PAM, está bien.
fuente
La configuración de ssh para habilitar solo sftp para algunos usuarios seleccionados es una buena idea y funciona correctamente, siempre que instale
scponly
orssh
.rssh
funciona bien, a menos que necesite configurar la cárcel, en este caso, tratar de seguir las instrucciones proporcionadas por los manuales de CHROOT es una locura, lo que lleva a "copiar" grandes partes de los ejecutables del sistema y la biblioteca justo debajo de "cada cárcel de usuario", incluido elrssh
propio shell. Es un método de pérdida de espacio.scponly
necesita una comprensión profunda en la configuración que conduzca a un problema siempre presente de rechazo de inicio de sesión en caso de configuración de la cárcel.La forma directa de permitir funcionalidades "ftp" con la cárcel funcionando correctamente, el soporte SSL / TLS para transacciones seguras e inicio de sesión es utilizar un VSFTPD "antiguo pero funcional", que se instala de forma rápida y limpia y ofrece toda la configurabilidad según sea necesario y, por último pero no menos importante: ¡funciona!
Maurizio
fuente
Desafortunadamente, todas las respuestas son extremadamente engañosas: haga lo siguiente:
Primero cree el usuario sftp y el grupo sftp
Cree un directorio separado como raíz para los archivos SFTP:
sudo mkdir -p /home/sftpdir
Reiniciar y verificar el estado del servicio sshd
sudo service sshd restart
servicio sshd status
Crea un archivo Shell. Agregar ejecución para hacer eco de un mensaje de notificación
sudo touch / bin / sftponly echo -e '#! / bin / sh \ necho "Esta cuenta está limitada solo al acceso SFTP". sudo tee -a / bin / sftponly
Otorgue permisos de ejecución y anexe al archivo de shells
sudo chmod a + x / bin / sftponly echo "/ bin / sftponly" | sudo tee -a / etc / shells
finalmente Pruebe y no debería poder conectarse.
Una plantilla para usar el cliente SFTP con una clave SSH y verbosidad básica:
sftp -v -oPort = $ RANDOM_PORT -i ~ / .ssh / $ SSH_KEY.pem sftpuser @ $ HOST
fuente