One place for hosting & domains

      Remoto

      Cómo usar SFTP para transferir archivos con un servidor remoto de manera segura


      Introducción

      FTP, o “File Transfer Protocol” (Protocolo de transferencia de archivos), era un método popular sin cifrar para transferir archivos entre dos sistemas remotos.

      SFTP, que significa Protocolo de transferencia de archivos SSH o Protocolo de transferencia segura de archivos, es un protocolo independiente empaquetado con SSH que funciona de forma similar pero a través de una conexión segura. La ventaja es la capacidad de aprovechar una conexión segura para transferir archivos y recorrer el sistema de archivos en los sistemas local y remoto.

      En casi todos los casos, es preferible usar SFTP, en vez de FTP, debido a sus características de seguridad subyacentes y a su capacidad para aprovechar una conexión SSH. FTP es un protocolo no seguro que solo debería utilizarse en casos limitados o en redes de confianza.

      Aunque SFTP está integrado en muchas herramientas gráficas, esta guía mostrará cómo utilizarlo en su interfaz de línea de comandos interactiva.

      Cómo conectarse con SFTP

      De forma predeterminada, SFTP utiliza el protocolo SSH para autenticarse y establecer una conexión segura. Por eso, están disponibles los mismos métodos de autenticación que en SSH.

      Aunque las contraseñas son fáciles de usar y se configuran de forma predeterminada, le recomendamos crear claves SSH y transferir su clave pública a cualquier sistema al que necesite acceder. Eso es mucho más seguro y puede ahorrarle tiempo a largo plazo.

      Consulte esta guía para configurar claves SSH para acceder a su servidor si aún no lo hizo.

      Si puede conectarse al equipo usando SSH, habrá completado todos los requisitos necesarios para usar SFTP para administrar archivos. Pruebe el acceso SSH con el siguiente comando:

      • ssh sammy@your_server_ip_or_remote_hostname

      Si esto funciona, salga de nuevo escribiendo:

      Ahora, podemos establecer una sesión SFTP ejecutando el siguiente comando:

      • sftp sammy@your_server_ip_or_remote_hostname

      Conectará el sistema remoto, y la entrada de su línea de comandos cambiará a una instrucción SFTP.

      Si está trabajando en un puerto SSH personalizado (no el puerto 22 predeterminado), puede iniciar una sesión SFTP de la siguiente manera:

      • sftp -oPort=custom_port sammy@your_server_ip_or_remote_hostname

      Eso lo conectará al sistema remoto mediante el puerto especificado.

      Cómo obtener ayuda en SFTP

      El comando más útil que debe conocer primero es el comando help. Este comando le da acceso a un resumen de la ayuda en SFTP. Puede invocarlo escribiendo cualquiera de estos en la instrucción:

      o

      Eso mostrará una lista de los comandos disponibles:

      Output

      Available commands: bye Quit sftp cd path Change remote directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-Ppr] remote [local] Download file help Display this help text lcd path Change local directory to 'path' . . .

      En las siguientes secciones, exploraremos algunos de los comandos que verá.

      Cómo navegar con SFTP

      Podemos navegar a través de la jerarquía de archivos del sistema remoto usando varios comandos que funcionan de forma similar a sus contrapartes de shell.

      Primero, orientémonos averiguando en qué directorio estamos actualmente en el sistema remoto. Al igual que en una sesión típica de shell, podemos escribir lo siguiente para obtener el directorio actual:

      Output

      Remote working directory: /home/demouser

      Podemos ver el contenido del directorio actual del sistema remoto con otro comando familiar:

      Output

      Summary.txt info.html temp.txt testDirectory

      Tenga en cuenta que los comandos en la interfaz SFTP no son los comandos de shell normales y no cuentan con la misma cantidad de funciones, pero implementan algunos de los indicadores opcionales más importantes:

      Output

      drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 . drwxr-xr-x 3 root root 4096 Aug 13 15:02 .. -rw------- 1 demouser demouser 5 Aug 13 15:04 .bash_history -rw-r--r-- 1 demouser demouser 220 Aug 13 15:02 .bash_logout -rw-r--r-- 1 demouser demouser 3486 Aug 13 15:02 .bashrc drwx------ 2 demouser demouser 4096 Aug 13 15:04 .cache -rw-r--r-- 1 demouser demouser 675 Aug 13 15:02 .profile . . .

      Para llegar a otro directorio, podemos ejecutar este comando:

      Ahora, podemos recorrer el sistema de archivos remotos, pero ¿qué pasa si necesitamos acceder a nuestro sistema de archivos local? Podemos dirigir los comandos al sistema de archivos locales precediéndolos con una l que hace referencia a “local”.

      Todos los comandos examinados hasta ahora tienen equivalentes locales. Podemos imprimir el directorio local de trabajo:

      Output

      Local working directory: /Users/demouser

      Podemos enumerar el contenido del directorio actual en el equipo local:

      Output

      Desktop local.txt test.html Documents analysis.rtf zebra.html

      También podemos cambiar el directorio con el que deseamos interactuar en el sistema local:

      Cómo transferir archivos con SFTP

      Navegar por los sistemas de archivos locales y remotos es muy poco útil si no se puede transferir archivos entre ambos.

      Transferencia de archivos remotos al sistema local

      Si queremos descargar archivos de nuestro host remoto, podemos hacerlo ejecutando el siguiente comando:

      Output

      Fetching /home/demouser/remoteFile to remoteFile /home/demouser/remoteFile 100% 37KB 36.8KB/s 00:01

      Como puede ver, de forma predeterminada, el comando get descarga un archivo remoto a un archivo con el mismo nombre en el sistema de archivos locales.

      Podemos copiar el archivo remoto a un nombre diferente especificando el nombre después:

      El comando get también toma algunos indicadores de opción. Por ejemplo, podemos copiar un directorio y todo su contenido especificando la opción recursiva:

      Podemos indicarle a SFTP que mantenga los permisos y los tiempos de acceso adecuados utilizando el indicador -P o -p:

      Transferencia de archivos locales al sistema remoto

      Transferir archivos al sistema remoto es tan fácil como utilizar el comando correctamente llamado “put”:

      Output

      Uploading localFile to /home/demouser/localFile localFile 100% 7607 7.4KB/s 00:00

      Los mismos indicadores que funcionan con get se aplican a put. Para copiar un directorio local completo, puede ejecutar:

      Nota: Actualmente, hay un error en las versiones de OpenSSH incluidas en las versiones actuales de Ubuntu (al menos de la versión 14.04 a la 15.10) que impide que el comando anterior funcione correctamente. Cuando se ejecuta el comando anterior para transferir contenido a un servidor utilizando la versión con errores de OpenSSH, se producirá el siguiente error: Couldn't canonicalise: No such file or directory (No se pudo canonizar: no existe tal archivo o directorio).

      Para resolver este problema, primero cree el directorio de destino en el extremo remoto escribiendo mkdir localDirectory. Luego, el comando anterior debería completarse sin errores.

      Una herramienta familiar que es útil para descargar y cargar archivos es el comando df, que funciona de forma similar a la versión de la línea de comandos. Al utilizarla, puede verificar que tiene suficiente espacio para completar las transferencias que le interesan:

      Output

      Size Used Avail (root) %Capacity 19.9GB 1016MB 17.9GB 18.9GB 4%

      Tenga en cuenta que no hay ninguna variación local de este comando, pero podemos solucionarlo ejecutando ! como comando.

      El comando ! nos lleva a un shell local, donde podemos ejecutar cualquier comando disponible en nuestro sistema local. Podemos verificar el uso del disco escribiendo lo siguiente:

      y luego

      Output

      Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 595Gi 52Gi 544Gi 9% / devfs 181Ki 181Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home

      Cualquier otro comando local funcionará de la manera esperada. Para volver a su sesión SFTP, escriba lo siguiente:

      Ahora, debería ver el retorno de la instrucción de SFTP.

      Manipulaciones de archivos simples con SFTP

      SFTP le permite realizar el tipo de mantenimiento básico de archivos que es útil cuando se trabaja con jerarquías de archivos.

      Por ejemplo, puede cambiar el propietario de un archivo en el sistema remoto con:

      Observe cómo, a diferencia del comando chmod del sistema, el comando SFTP no acepta nombres de usuario, sino que utiliza UID. Lamentablemente, no hay una manera sencilla de saber el UID adecuado desde la interfaz SFTP.

      Se puede realizar una solución alternativa más compleja con:

      • get /etc/passwd
      • !less passwd

      Output

      root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh . . .

      Observe cómo en vez de utilizar el comando ! en sí, lo utilizamos como prefijo para un comando de shell local. Eso funciona para ejecutar cualquier comando disponible en nuestro equipo local y podría haberse utilizado anteriormente con el comando local df.

      El UID se encuentra en la tercera columna del archivo, delimitado por caracteres de dos puntos.

      De manera similar, podemos cambiar el propietario del grupo de un archivo con:

      De nuevo, no existe una forma sencilla de obtener una lista de los grupos del sistema remoto. Podemos solucionarlo con el siguiente comando:

      • get /etc/group
      • !less group

      Output

      root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: . . .

      La tercera columna contiene el ID del grupo asociado con el nombre en la primera columna. Eso es lo que buscamos.

      Por suerte, el comando chmod funciona correctamente en el sistema de archivos remotos:

      Output

      Changing mode on /home/demouser/publicFile

      No existe ningún comando para manipular permisos de archivo locales, pero puede quitar la máscara local para que todos los archivos que se copien al sistema local tengan los permisos adecuados.

      Eso se puede lograr con el comando lumask:

      Output

      Local umask: 022

      Ahora, todos los archivos regulares descargados (siempre que no se utilice el indicador -p) tendrán 644 permisos.

      SFTP permite crear directorios en sistemas locales y en sistemas remotos con lmkdir y mkdir, respectivamente. Estos funcionan de la manera prevista.

      El resto de los comandos del archivo solo apuntan al sistema de archivos remotos:

      Estos comandos replican el comportamiento básico de las versiones del shell. Si necesita realizar estas acciones en el sistema de archivos local, recuerde que puede ingresar a un shell ejecutando este comando:

      O ejecutar un comando único en el sistema local anteponiendo ! al comando de esta manera:

      Cuando termine con la sesión SFTP, utilice exit o bye para cerrar la conexión.

      Conclusión

      Aunque SFTP es una herramienta simple, es muy útil para administrar servidores y transferir archivos entre ellos.

      Por ejemplo, puede usar SFTP para permitir que determinados usuarios transfieran archivos sin acceso SSH. Para obtener más información sobre este proceso, consulte nuestro tutorial Cómo habilitar SFTP sin acceso de shell.

      Si está acostumbrado a utilizar FTP o SCP para realizar sus transferencias, SFTP es una buena forma de aprovechar las ventajas de ambos. Si bien no es adecuado para todas las situaciones, es útil tenerlo en su repertorio por ser una herramienta flexible.



      Source link

      Cómo usar SSH para conectarse a un servidor remoto


      Introducción

      SSH es una herramienta esencial para ser un administrador de sistemas experto.

      SSH, o Secure Shell, es un protocolo que se utiliza para iniciar sesión de forma segura en sistemas remotos. Es la forma más común de acceder a servidores Linux remotos.

      En esta guía, analizaremos cómo usar SSH para conectarse a un sistema remoto.

      Sintaxis básica

      Para conectarse a un sistema remoto mediante SSH, usaremos el comando ssh. El formato más básico del comando es:

      En este ejemplo, remote_host es la dirección IP o el nombre de dominio al que está tratando de conectarse.

      Este comando asume que su nombre de usuario en el sistema remoto es el mismo que el que usa en el sistema local.

      Si su nombre de usuario es diferente en el sistema remoto, puede especificarlo usando esta sintaxis:

      • ssh remote_username@remote_host

      Cuando se haya conectado al servidor, se le puede solicitar que verifique su identidad mediante el ingreso de una contraseña. Más adelante, cubriremos cómo generar claves para usar en vez de contraseñas.

      Para salir de la sesión de ssh y volver a la sesión de shell local, escriba lo siguiente:

      ¿Cómo funciona SSH?

      SSH funciona mediante la conexión de un programa cliente a un servidor ssh, llamado sshd.

      En la sección anterior, ssh era el programa cliente. El servidor ssh ya está en ejecución en el remote_host que se especificó.

      En su servidor, el servidor sshd ya debe estar en ejecución. Si no es así, es posible que deba acceder a su servidor mediante una consola basada en la web o una consola serie local.

      El proceso que debe iniciar un servidor ssh depende de la distribución de Linux que esté utilizando.

      En Ubuntu, para iniciar el servidor ssh, debe escribir lo siguiente:

      Eso debería iniciar el servidor sshd y, luego, puede iniciar sesión de forma remota.

      Cómo configurar SSH

      Cuando cambie la configuración de SSH, cambiará la configuración del servidor sshd.

      En Ubuntu, el archivo de configuración sshd principal se encuentra en /etc/ssh/sshd_config.

      Haga una copia de seguridad de la versión actual de este archivo antes de editarlo:

      • sudo cp /etc/ssh/sshd_config{,.bak}

      Ábralo con un editor de texto:

      • sudo nano /etc/ssh/sshd_config

      Tendrá que dejar la mayoría de las opciones de este archivo sin modificar. Sin embargo, es posible que desee echar un vistazo a algunas:

      /etc/ssh/sshd_config

      Port 22
      

      La declaración de puerto especifica en qué puerto se escuchará el servidor sshd para las conexiones. De forma predeterminada, es el 22. Es recomendable dejar esta configuración sin modificar, a menos que tenga razones específicas para hacerlo. Si efectivamente cambia de puerto, le mostraremos cómo conectarse al puerto nuevo más adelante.

      /etc/ssh/sshd_config

      HostKey /etc/ssh/ssh_host_rsa_key
      HostKey /etc/ssh/ssh_host_dsa_key
      HostKey /etc/ssh/ssh_host_ecdsa_key
      

      Las declaraciones de claves de host especifican dónde buscar claves de host globales. Analizaremos qué es una clave de host más adelante.

      /etc/ssh/sshd_config

      SyslogFacility AUTH
      LogLevel INFO
      

      Estos dos elementos indican el nivel de registro que debería ocurrir.

      Si tiene dificultades con SSH, incrementar la cantidad de registros puede ser una buena forma de descubrir cuál es el problema.

      /etc/ssh/sshd_config

      LoginGraceTime 120
      PermitRootLogin yes
      StrictModes yes
      

      Estos parámetros especifican parte de la información de inicio de sesión.

      LoginGraceTime especifica cuántos segundos se mantendrá la conexión activa sin iniciar sesión correctamente.

      Una buena idea puede ser establecer este tiempo en un valor un poco mayor que la cantidad de tiempo que le toma iniciar sesión normalmente.

      PermitRootLogin selecciona si se permite que el usuario root inicie sesión.

      En la mayoría de los casos, esto debería modificarse a no cuando haya creado una cuenta de usuario que tenga acceso a mayores privilegios (a través de su o sudo) y que pueda iniciar sesión a través de ssh.

      strictModes es un protector de la seguridad que denegará un intento de inicio de sesión si cualquiera puede leer los archivos de autenticación.

      Esto evita intentos de inicio de sesión cuando los archivos de configuración no son seguros.

      /etc/ssh/sshd_config

      X11Forwarding yes
      X11DisplayOffset 10
      

      Estos parámetros configuran una capacidad llamada Reenvío X11. Esto le permite ver en el sistema local la interfaz gráfica de usuario (GUI) del sistema remoto.

      Esta opción debe habilitarse en el servidor y asignarse con el cliente SSH durante la conexión con la opción -X.

      Tras realizar los cambios, guarde y cierre el archivo mediante CTRL+X e Y, seguido de INTRO.

      Si modificó alguna configuración en /etc/ssh/sshd_config, asegúrese de volver a cargar el servidor sshd para implementar los cambios.

      • sudo systemctl reload ssh

      Debería probar completamente los cambios para garantizar que funcionan de la forma en que se espera.

      Una buena idea puede ser tener algunas sesiones activas cuando realice cambios. Esto le permitirá revertir la configuración si es necesario.

      Cómo iniciar sesión en SSH con claves

      Si bien es útil poder iniciar sesión en un sistema remoto usando contraseñas, es mucho mejor configurar una autenticación basada en claves.

      ¿Cómo funciona la autenticación basada en claves?

      La autenticación basada en claves funciona mediante la creación de un par de claves: una clave privada y una clave pública.

      La clave privada se encuentra en el equipo cliente y se protege y mantiene en secreto.

      La clave pública puede entregarse a alguien o colocarse en cualquier servidor al que desee acceder.

      Cuando intente conectarse usando un par de claves, el servidor usará la clave pública para crear un mensaje para el equipo cliente que solo puede leerse con la clave privada.

      Luego, el equipo cliente envía la respuesta apropiada al servidor y así el servidor sabrá que el cliente es legítimo.

      El proceso completo se realiza automáticamente después de configurar las claves.

      Cómo crear claves SSH

      Las claves SSH deben generarse en el equipo desde el que desea iniciar sesión. Generalmente, es su equipo local.

      Ingrese lo siguiente en la línea de comandos:

      Presione Intro para aceptar los valores predeterminados. Sus claves se crearán en ~/.ssh/id_rsa.pub y ~/.ssh/id_rsa.

      Cambie al directorio .ssh escribiendo lo siguiente:

      Vea los permisos de los archivos:

      Output

      -rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys -rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa -rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

      Como puede ver, solo el propietario puede leer el archivo id_rsa y escribir en él. Así es como debería ser mantenerlo en secreto.

      Sin embargo, el archivo id_rsa.pub puede compartirse y tiene permisos apropiados para esta actividad.

      Cómo transferir su clave pública al servidor

      Si actualmente tiene acceso con contraseña a un servidor, puede copiar su clave pública en él mediante la emisión de este comando:

      Con esto se iniciará una sesión SSH. Después de ingresar su contraseña, su clave pública se copiará en el archivo de claves autorizadas del servidor, lo que le permitirá iniciar sesión sin la contraseña la próxima vez.

      Opciones del lado del cliente

      Hay varios indicadores opcionales que puede seleccionar cuando se conecta mediante SSH.

      Algunos de ellos pueden ser necesarios para que la configuración coincida con la del sshd del host remoto.

      Por ejemplo, si cambió el número de puerto en su configuración de sshd, también deberá cambiarlo en el lado del cliente para que coincida escribiendo lo siguiente:

      • ssh -p port_number remote_host

      Si solo desea ejecutar un comando único en un sistema remoto, puede especificarlo después del host como este:

      • ssh remote_host command_to_run

      Se conectará al equipo remoto, se autenticará y se ejecutará el comando.

      Como dijimos antes, si el reenvío X11 se habilita en ambas computadoras, puede acceder a esa funcionalidad escribiendo lo siguiente:

      Siempre que tenga las herramientas apropiadas en su computadora, los programas de GUI que utiliza en el sistema remoto ahora abrirán su ventana en el sistema local.

      Si creó claves SSH, puede mejorar la seguridad de su servidor deshabilitando la autenticación únicamente mediante contraseña. Aparte de la consola, la única forma de iniciar sesión en su servidor será mediante la clave privada que se empareja con la clave pública que se haya instalado en el servidor.

      Advertencia: Antes de continuar con este paso, asegúrese de haber instalado una clave pública en su servidor. Si no es así, quedará bloqueado.

      Como root o usuario con privilegios sudo, abra el archivo de configuración sshd:

      • sudo nano /etc/ssh/sshd_config

      Busque la línea que dice Password Authentication y quite el comentario en ella eliminando el # inicial. Luego, puede cambiar su valor a no:

      /etc/ssh/sshd_config

      PasswordAuthentication no
      

      Dos parámetros adicionales que no deben modificarse (siempre que no haya modificado este archivo antes) son PubkeyAuthentication y PubkeyAuthentication. Están configurados de forma predeterminada y deben mostrar lo siguiente:

      /etc/ssh/sshd_config

      PubkeyAuthentication yes
      ChallengeResponseAuthentication no
      

      Después de realizar los cambios, guarde y cierre el archivo.

      Ahora puede volver a cargar el demonio SSH:

      • sudo systemctl reload ssh

      Ahora, la autenticación mediante contraseña debería deshabilitarse y solo debe poder acceder a su servidor mediante la autenticación de claves SSH.

      Conclusión

      Aprender cómo usar SSH es un proceso que vale la pena, aunque solo sea una actividad común.

      A medida que utilice las diversas opciones, descubrirá funciones más avanzadas que pueden facilitarle la vida. SSH ha mantenido su popularidad porque es seguro, ligero y útil en diversas situaciones.



      Source link

      Como usar o SSH para se conectar a um servidor remoto


      Introdução

      Uma ferramenta essencial para se ter domínio na administração de sistemas é o SSH.

      O SSH, ou Secure Shell, é um protocolo usado para fazer login em sistemas remotos de forma segura. É a maneira mais comum de acessar servidores Linux remotos.

      Neste guia, vamos discutir como usar o SSH para se conectar a um sistema remoto.

      Sintaxe básica

      Para se conectar a um sistema remoto usando o SSH, vamos usar o comando ssh. A forma mais básica do comando é:

      O remote_host neste exemplo é o endereço IP ou o nome de domínio ao qual você está tentando se conectar.

      Este comando assume que o nome de usuário no sistema remoto é o mesmo que o seu nome de usuário em seu sistema local.

      Se o nome de usuário for diferente no sistema remoto, especifique isso usando esta sintaxe:

      • ssh remote_username@remote_host

      Depois de se conectar ao servidor, será solicitado que verifique sua identidade fornecendo uma senha. Mais tarde, vamos mostrar como gerar chaves para usar em vez de senhas.

      Para sair da sessão ssh e retornar em sua sessão de shell local, digite:

      Como o SSH funciona?

      O SSH funciona conectando um programa cliente a um servidor ssh, chamado sshd.

      Na seção anterior, o ssh era o programa cliente. O servidor ssh já está sendo executado no remote_host que especificamos.

      Em seu servidor, o servidor sshd já deve estar sendo executado. Se este não for o caso, será necessário acessar seu servidor através de um console baseado na Web ou console serial local.

      O processo necessário para iniciar um servidor ssh depende da distribuição Linux que você está usando.

      No Ubuntu, inicie o servidor ssh digitando:

      Isso deve iniciar o servidor sshd e então você pode fazer login remotamente.

      Como configurar o SSH

      Quando você altera a configuração do SSH, está alterando as configurações do servidor sshd.

      No Ubuntu, o arquivo de configuração sshd principal está localizado em /etc/ssh/sshd_config.

      Faça o backup da versão atual deste arquivo antes de editar:

      • sudo cp /etc/ssh/sshd_config{,.bak}

      Abra-o com um editor de texto:

      • sudo nano /etc/ssh/sshd_config

      Você vai querer deixar a maioria das opções neste arquivo sozinha. No entanto, existem algumas que você pode querer dar uma olhada:

      /etc/ssh/sshd_config

      Port 22
      

      A declaração port especifica em qual porta o servidor sshd irá ouvir conexões. Por padrão, ela é a 22. Você provavelmente deve deixar essa configuração intacta, a menos que tenha motivos específicos para fazer o contrário. Se você alterar sua porta, vamos mostrar a você como se conectar à nova porta posteriormente.

      /etc/ssh/sshd_config

      HostKey /etc/ssh/ssh_host_rsa_key
      HostKey /etc/ssh/ssh_host_dsa_key
      HostKey /etc/ssh/ssh_host_ecdsa_key
      

      As declarações HostKey especificam onde procurar por chaves host globais. Vamos discutir o que é uma chave host mais tarde.

      /etc/ssh/sshd_config

      SyslogFacility AUTH
      LogLevel INFO
      

      Esses dois itens indicam o nível de geração de registros que deve ocorrer.

      Se você estiver tendo dificuldades com o SSH, aumentar a quantidade de registros pode ser uma boa maneira de descobrir qual é o problema.

      /etc/ssh/sshd_config

      LoginGraceTime 120
      PermitRootLogin yes
      StrictModes yes
      

      Esses parâmetros especificam algumas das informações de login.

      LoginGraceTime especifica por quantos segundos será mantida a conexão sem fazer o login com sucesso.

      Pode ser uma boa ideia definir esse tempo apenas um pouco mais alto do que a quantidade de tempo que você leva para fazer login normalmente.

      PermitRootLogin seleciona se o usuário root está autorizado a fazer login.

      Na maioria dos casos, isso deve ser alterado para no quando você criou uma conta de usuário que tem acesso a privilégios elevados (através de su ou sudo) e pode fazer login via ssh.

      strictModes é uma proteção de segurança que recusará uma tentativa de login se os arquivos de autenticação puderem ser lidos por todos.

      Isso impede tentativas de login quando os arquivos de configuração não estão seguros.

      /etc/ssh/sshd_config

      X11Forwarding yes
      X11DisplayOffset 10
      

      Esses parâmetros configuram uma habilidade chamada X11 Forwarding. Isso permite que você visualize a interface gráfica de usuário (GUI) de um sistema remoto, no sistema local.

      Essa opção deve estar habilitada no servidor e enviada com o cliente SSH durante a conexão com a opção -X.

      Depois de fazer as alterações, salve e feche o arquivo digitando CTRL+X e Y, seguido por ENTER.

      Se você alterou quaisquer configurações em /etc/ssh/sshd_config, certifique-se de recarregar o servidor sshd para implementar suas modificações:

      • sudo systemctl reload ssh

      Você deve testar suas alterações minuciosamente para garantir que elas operem da forma que você espera.

      Pode ser uma boa ideia ter algumas sessões ativas quando você estiver fazendo alterações. Isso permitirá que você reverta a configuração se necessário.

      Embora seja útil fazer login em um sistema remoto usando senhas, é uma ideia muito melhor configurar a autenticação baseada em chaves.

      Como a autenticação baseada em chaves funciona?

      A autenticação baseada em chaves funciona criando um par de chaves: uma chave privada e uma chave pública.

      A chave privada está localizada na máquina cliente e é protegida e mantida em segredo.

      A chave pública pode ser fornecida a qualquer um ou colocada em qualquer servidor que você queira acessar.

      Quando você tentar se conectar usando um par de chaves, o servidor usará a chave pública para criar uma mensagem para o computador cliente que só pode ser lida com a chave privada.

      O computador cliente então envia a resposta adequada de volta ao servidor e o servidor saberá que o cliente é legítimo.

      Todo esse processo é feito automaticamente depois de você configurar as chaves.

      Como criar chaves SSH

      As chaves SSH devem ser geradas no computador a partir do qual você deseja fazer login. Esta é geralmente a sua máquina local.

      Digite o seguinte na linha de comando:

      Pressione enter para aceitar os padrões. Suas chaves serão criadas em ~/.ssh/id_rsa.pub e ~/.ssh/id_rsa.

      Mude para o diretório .ssh digitando:

      Olhe para as permissões dos arquivos:

      Output

      -rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys -rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa -rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pub

      Como você pode ver, o arquivo id_rsa é legível e gravável apenas pelo proprietário. É assim que deve ser para mantê-lo em segredo.

      O arquivo id_rsa.pub, no entanto, pode ser compartilhado e possui permissões adequadas para essa atividade.

      Como transferir sua chave pública para o servidor

      Se você tiver atualmente acesso baseado em senha a um servidor, você pode copiar sua chave pública para ele executando este comando:

      Isso irá iniciar uma sessão SSH. Depois de inserir sua senha, ele irá copiar sua chave pública para o arquivo de chaves autorizadas do servidor, o que permitirá que você faça login sem a senha da próxima vez.

      Opções do lado do cliente

      Existem vários sinalizadores opcionais que você pode selecionar ao se conectar por meio de SSH.

      Alguns deles podem ser necessários para corresponder às definições na configuração sshd do host remoto.

      Por exemplo, se você alterou o número de porta em sua configuração sshd, você precisará fazer a correspondência dessa porta do lado do cliente digitando:

      • ssh -p port_number remote_host

      Se você deseja apenas executar um único comando em um sistema remoto, especifique-o após o host dessa forma:

      • ssh remote_host command_to_run

      Você irá se conectar à máquina remota, autenticar, e o comando será executado.

      Como dissemos antes, se o encaminhamento X11 estiver habilitado em ambos os computadores, acesse essa funcionalidade digitando:

      Desde que você tenha as ferramentas apropriadas em seu computador, programas gráficos que você usa no sistema remoto irão agora abrir suas janelas em seu sistema local.

      Desativando a autenticação de senha

      Se você criou chaves SSH, melhore a segurança do seu servidor desativando a autenticação somente de senhas. Além do console, a única maneira de fazer login no servidor será através da chave privada que emparelha com a chave pública que você instalou no servidor.

      Aviso: antes de prosseguir com este passo, certifique-se de que você instalou uma chave pública no servidor. Caso contrário, você estará sob bloqueio!

      Como root ou usuário com privilégios sudo, abra o arquivo de configuração sshd:

      • sudo nano /etc/ssh/sshd_config

      Localize a linha em que se lê Password Authentication, e descomente-a removendo o # do início. Em seguida, altere seu valor para no:

      /etc/ssh/sshd_config

      PasswordAuthentication no
      

      Duas outras configurações que não devem precisar ser modificadas (desde que você não tenha modificado este arquivo antes) são PubkeyAuthentication e ChallengeResponseAuthentication. Elas são definidas por padrão, e devem estar da seguinte forma:

      /etc/ssh/sshd_config

      PubkeyAuthentication yes
      ChallengeResponseAuthentication no
      

      Depois de fazer as alterações, salve e feche o arquivo.

      Agora, é possível recarregar o daemon SSH:

      • sudo systemctl reload ssh

      A autenticação de senha agora deve estar desativada e o servidor deve estar acessível apenas através da autenticação de chaves SSH.

      Conclusão

      Aprender como usar o SSH é uma atividade que vale a pena, mesmo porque é uma atividade muito comum.

      Ao usar as várias opções, você descobrirá funcionalidades mais avançadas que podem tornar sua vida mais fácil. O SSH permaneceu popular porque é seguro, leve e útil em diversas situações.



      Source link