sftp
Fri Jul 25 2025 19:03:04 GMT+0000 (Coordinated Universal Time)
Saved by @jrg_300i #undefined
1. Instalar el servidor OpenSSH Abre la terminal y asegúrate de que el paquete de servidor SSH esté instalado: bash sudo apt update sudo apt install openssh-server Verifica que el servicio esté activo: bash sudo systemctl status ssh Si no está activo, inícialo con: bash sudo systemctl start ssh 2. Crear un usuario para acceso SFTP (opcional) Si quieres un usuario específico para SFTP, créalo así: bash sudo adduser nombreusuario Asigna la contraseña y los datos que te pida. 3. Configurar acceso SFTP restringido (opcional, para mayor seguridad) Si quieres que el usuario solo acceda a un directorio específico (jaula/chroot), edita la configuración SSH: bash sudo nano /etc/ssh/sshd_config Al final del archivo agrega algo así para restringir el usuario a su carpeta SFTP: text Match User nombreusuario ChrootDirectory /home/nombreusuario/ftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no Luego crea la carpeta y asigna permisos apropiados: bash sudo mkdir -p /home/nombreusuario/ftp sudo chown root:root /home/nombreusuario sudo chown nombreusuario:nombreusuario /home/nombreusuario/ftp Esto asegura que el usuario solo pueda acceder a /home/nombreusuario/ftp vía SFTP. 4. Reiniciar el servidor SSH para aplicar cambios bash sudo systemctl restart ssh Te pedirá la contraseña y luego podrás usar comandos como ls, cd, put o get para subir y bajar archivos. 6. Acceso gráfico (opcional) En el gestor de archivos, ve a "Conectar al servidor" y escribe: text sftp://nombreusuario@ip_del_servidor Ingresa la contraseña y podrás acceder como si fuera una carpeta local. Esta es la manera estándar de configurar un servidor SFTP seguro en Linux Mint, usando OpenSSH que ofrece cifrado y autenticación robusta sin necesidad de configurar servidores FTP separados. configurar el acceso SFTP con claves SSH en lugar de contraseña o a crear un entorno SFTP aún más seguro. 1. Generar un par de claves SSH en tu equipo cliente Abre una terminal en la máquina desde donde te conectarás (puede ser la misma Linux Mint o tu PC cliente) y genera las claves SSH con: ssh-keygen -t ed25519 Si prefieres RSA (también válido), usa -t rsa. Cuando te pregunte dónde guardarlas, puedes aceptar la ruta predeterminada (~/.ssh/id_ed25519). Opcionalmente, asigna una frase de contraseña (passphrase) para mayor seguridad o déjalo vacío para acceso sin contraseña. Esto generará dos archivos: la clave privada (id_ed25519) y la clave pública (id_ed25519.pub). 2. Copiar la clave pública al servidor Linux Mint (donde está el servidor SSH) Para permitir el acceso sin contraseña, copia la clave pública al servidor en el archivo authorized_keys del usuario al que quieres conectarte: bash ssh-copy-id nombreusuario@ip_del_servidor Sustituye nombreusuario por el usuario del servidor y ip_del_servidor por la IP real o dominio. Si no tienes la herramienta ssh-copy-id, puedes hacerlo manualmente: Conecta al servidor con contraseña: bash ssh nombreusuario@ip_del_servidor Luego en cliente local: bash cat ~/.ssh/id_ed25519.pub | ssh nombreusuario@ip_del_servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" 3. Configurar el servidor SSH para usar solo autenticación por clave (opcional y seguro) Edita la configuración SSH en el servidor: bash sudo nano /etc/ssh/sshd_config Busca o agrega las siguientes líneas para permitir la autenticación mediante claves y deshabilitar la contraseña si quieres máxima seguridad: text PubkeyAuthentication yes PasswordAuthentication no ChallengeResponseAuthentication no Nota: No apagues la autenticación por contraseña hasta que hayas confirmado que la autenticación por clave funciona correctamente, para evitar quedarte sin acceso. Guarda el archivo y reinicia el servidor SSH: bash sudo systemctl restart ssh 4. (Opcional) Configurar un entorno SFTP restringido (jaula/chroot) Si quieres limitar al usuario a solo un directorio específico cuando use SFTP (por ejemplo /home/nombreusuario/ftp), agrega estas líneas al final del archivo /etc/ssh/sshd_config: text Match User nombreusuario ChrootDirectory /home/nombreusuario/ftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no Luego ajusta permisos del directorio principal (chroot): bash sudo chown root:root /home/nombreusuario sudo chmod 755 /home/nombreusuario sudo mkdir -p /home/nombreusuario/ftp sudo chown nombreusuario:nombreusuario /home/nombreusuario/ftp Y reinicia el servicio SSH nuevamente: bash sudo systemctl restart ssh 5. Conectarte al servidor desde cliente usando SFTP con clave SSH Usa el siguiente comando para conectar: bash sftp nombreusuario@ip_del_servidor Ahora la conexión no debe pedir contraseña, sino que usará la clave privada para autenticar. Si la clave privada tiene passphrase, te la pedirá para desbloquear la clave. 6. (Opcional) Usar agente SSH para gestionar la clave privada Para no tener que ingresar la passphrase cada vez, puedes agregar la clave al agente SSH: bash ssh-add ~/.ssh/id_ed25519 7. Acceso gráfico al SFTP con clave SSH En gestores de archivo modernos (Nautilus, Caja): Ve a "Conectar al servidor" Escribe: text sftp://nombreusuario@ip_del_servidor Si configuraste clave sin passphrase o tienes la clave "cargada" en el agente SSH, te conectará sin pedir contraseña. Con esto tienes configurado un acceso SFTP seguro mediante claves SSH, muy superior a usar contraseña, y opcionalmente protegido con un entorno restringido (chroot). Si quieres, puedo ayudarte a preparar scripts automatizados o detalles para gestionar varias claves o usuarios.
Comments