Solución:
El mejor recurso para ayudarlo a comenzar a configurar un servicio SSH en una máquina Host usando Ubuntu es OpenSSH Server. Esto le permitirá utilizar el Protocolo de transferencia de archivos SSH (también Protocolo seguro de transferencia de archivos o SFTP) para acceder, transferir y administrar archivos a través de SSH desde una máquina Cliente.
Descripción general de la solución
- En Ubuntu puede configurar un
OpenSSH server
en una máquina Host y un usuario puede usarssh
para conectarse del Cliente al servidor del Host utilizando solo un nombre de usuario y una contraseña. Sin embargo, tenga en cuenta que se recomienda la autenticación de clave pública,
“Asegúrese de tener una contraseña segura antes de instalar un servidor SSH (es posible que desee deshabilitar las contraseñas por completo)”
- Las cuentas de usuario administrativo creadas en el host tendrán privilegios sudo, las cuentas de usuario estándar creadas en el host no.
Instale y configure su servidor OpenSSH en el host
Para instalar un servidor OpenSSH en el host:
sudo apt-get install openssh-server
Proporcione a su host una dirección IP estática para que pueda conectarse de manera confiable:
nm-connection-editor
Para configurar su servidor OpenSSH, “primero, haga una copia de seguridad de su archivo sshd_config copiándolo en su directorio de inicio, o haciendo una copia de solo lectura en / etc / ssh haciendo:”
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
“Una vez que haya hecho una copia de seguridad de su sshd_config
archivo, puede realizar cambios con cualquier editor de texto, por ejemplo: “
sudo -H gedit /etc/ssh/sshd_config
Debe reiniciar su servicio ssh en el Host para que estos cambios surtan efecto
sudo service ssh restart
Considere las siguientes medidas de seguridad
- No habilite el reenvío de puertos en su enrutador: cuando un forastero le pide a su enrutador que conecte a un externo al puerto 22, etc., su enrutador no cumple a menos que haya habilitado el reenvío de puertos
- Desactivar el inicio de sesión de root: comentar
PermitRootLogin without-password
; agregarPermitRootLogin no
al anfitrión/etc/ssh/sshd_config
- Elija un puerto SSH no estándar: comentario
Port 22
; agregarPort <new-port-number>
al anfitrión/etc/ssh/sshd_config
- Permitir solo conexiones locales: Agregar
ListenAddress 192.168.0.10
- Permitir ciertos usuarios en ciertos puertos: Agregar
AllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
oAllowUsers <username>@111.222.333.*
al anfitrión/etc/ssh/sshd_config
- Permitir solo conexiones de clave RSA (sin contraseña): agregue el contenido de
~/.ssh/id_rsa.pub
de cada Cliente como una nueva línea de~/.ssh/authorized_keys
. Luego añadePasswordAuthentication no
al anfitrión/etc/ssh/sshd_config
- Intentos de craqueo lentos de los atacantes: utilice ufw (cortafuegos sin complicaciones) en el host para limitar la velocidad de las conexiones entrantes a 10 / minuto:
sudo apt-get install ufw && sudo ufw limit OpenSSH
- Para obtener más ideas, consulte Cómo mantener seguro el acceso SSH
Si cree que debe hacerlo, habilite PasswordAuthentication
en tus sshd_config
expediente
Encuentra la línea con la frase PasswordAuthentication
y haz que lea:
PasswordAuthentication yes
Guarde su nuevo sshd_config
archivo y luego reinicie el Host ssh
Servicio:
sudo service ssh restart
Si necesita acceso desde cualquier lugar a través de Internet, configure el reenvío de puertos en su enrutador local para dirigir el tráfico a su servidor OpenSSH
Tenga en cuenta el puerto del Host ssh
el servicio escucha en el sshd_config
y configure su enrutador para reenviar el tráfico TCP / UDP dirigido a este puerto a la dirección IP de su servidor OpenSSH.
- Normalmente, puede apuntar su navegador web a
192.168.1.1
para iniciar sesión en su enrutador y configurar el reenvío de puertos. Consulte ¿Configurar el servidor y el enrutador OpenSSH para aceptar la conexión SSH a través de Internet?
Conéctese al host e inicie sesión a través de la línea de comandos o terminal
-
Para abrir un terminal de shell SFTP como
<username>
en el Host, abra una Terminal en el Cliente e ingrese el siguiente comando, reemplazando123.123.1.23
con la dirección IP del host:sftp <username>@123.123.1.23
-
Si cambió el número de puerto que escucha el servidor OpenSSH del Host, haga lo siguiente:
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
-
-
Para abrir un terminal de shell SSH como
<username>
en el Host, abra una Terminal en el Cliente e ingrese el siguiente comando, reemplazando123.123.1.23
con la dirección IP del host:ssh <username>@123.123.1.23
-
Si cambió el número de puerto que escucha el servidor OpenSSH del Host, haga lo siguiente:
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
-
Conéctese al host e inicie sesión a través del administrador de archivos GUI (por ejemplo, Nautilus) para obtener un acceso SFTP más visual para permitir transferencias de archivos
- Abrir Nautilus en el cliente
- Seleccione Archivo> Conectarse al servidor
- Escribe:
SSH
- Servidor: ingrese la dirección IP del host
- Puerto: número de puerto especificado en el host
sshd_config
expediente - Nombre de usuario: nombre de usuario
- Contraseña: contraseña
En 14.04:
- Abrir Nautilus en el cliente
- Conectar al servidor
- Escriba: `ssh @ 123.123.1.23:
Cree cuentas de usuario estándar en el host con permisos de archivo limitados fuera de su carpeta de inicio
Los permisos de archivo adecuados establecidos en el Host garantizan que cada usuario estándar (sin privilegios de sudo) que cree en el Host será propietario de su /home/new_user
directorio pero tiene permisos limitados con el resto de la estructura del directorio.
- Los permisos limitados no significan necesariamente que no puedan ver los nombres de archivo y la estructura de directorios.
¡Espero que sea de ayuda!
Paso 1: Instale el paquete OpenSSH si no está instalado
sudo apt-get install openssh-server
Paso 2: cree un grupo separado para los usuarios de SFTP.
sudo addgroup ftpaccess
Paso 3: editar /etc/ssh/sshd_config
archivo y realice los cambios que se indican a continuación. Busque y comente debajo de la línea.
#Subsystem sftp /usr/lib/openssh/sftp-server
y agregue estas líneas al final del archivo.
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Paso 4: reinicia el servicio sshd.
sudo service ssh restart
Paso 5: agregue un usuario con el grupo ftpaccess y cree una contraseña.
sudo adduser paul --ingroup ftpaccess --shell /usr/sbin/nologin
Paso 6: Modifique el permiso del directorio de inicio.
sudo chown root:root /home/paul
Paso 7: cree un directorio dentro de la casa para cargar y modificar el permiso con el grupo.
sudo mkdir /home/paul/www
sudo chown paul:ftpaccess /home/paul/www
Eso es todo .
Consulte: Configurar SFTP en ubuntu