Windows 10 permite ejecutar el famoso Bash de Ubuntu. Esta característica es conocida como Windows Subsystem for Linux (WLS), la cual permite ejecutar comandos nativos de Linux directamente en Windows. Una vez que WSL ha sido habilitada (característica opcional de Windows) una imagen genuina de Ubuntu es descargada desde las fuentes de Canonical. De esta forma, la aplicación Bash.exe es capaz de cargar el Bash de Ubuntu en Windows con todas sus instrucciones de línea desde un ambiente nativo.
Si no has activado el Bash de Ubuntu en tu PC aún, estás a tiempo. Puedes hacerlo siguiendo los pasos en nuestro tutorial «Cómo desplegar el Bash de Ubuntu en Windows«.
Una vez que activado el Bash de Ubuntu en Windows me encontré con algunos problemas que les mostraré cómo solucionar.
Posibles problemas al instalar el Bash de Ubuntu
El primer problema surgió cuando quise conectarme por SSH a un servidor remoto, al que le definí ciertos parámetros de conexión:
1 2 |
universo@digital:~$ ssh usuario@mi.servidor.remoto.com Bad owner or permissions on /home/universo/.ssh/config |
Al tratar de conectarme vía SSH se mostraba el mensaje anterior, indicando que existía un problema de permisos en el archivo “/home/universo/.ssh/config”. Para solucionar esto solo debes ajustar los permisos de dicho archivo a 644 (permiso de lectura y escritura para el propietario, el resto solo lectura):
1 |
universo@digital:~$ chmod 644 /home/carlos/.ssh/config |
Al aplicar los permisos puedes conectarte satisfactoriamente a tu servidor remoto vía SSH.
Un problema similar de permisos se dio al copiar mi llave privada SSH para conectarme a un servidor remoto que posee mi llave pública SSH:
1 2 3 4 5 6 7 8 9 |
universo@digital:~$ ssh root@servidor.remoto.com @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0640 for '/home/universo/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "/home/universo/.ssh/id_rsa": bad permissions root@ servidor.remoto.com password: |
Esto hacía que el cliente SSH ignorara mi llave privada, por lo que para conectarme debía especificar la contraseña. Si el servidor solo soporta conexiones mediante llaves SSH, no podrás conectarte a menos que apliques los permisos requeridos en el archivo de llave privada.
Si listamos el contenido del directorio que contiene la llave privada, podemos ver que el archivo de llave privada (id_rsa) posee permiso de lectura y escritura para el propietario y de lectura para el grupo:
1 2 3 4 5 6 7 8 |
universo@digital:~$ ll .ssh/ total 12 drwx------ 0 universo universo 4096 Aug 31 10:18 ./ drwxr-xr-x 0 universo universo 4096 Jul 31 11:56 ../ -rw-r--r-- 1 universo universo 62 Jun 24 12:18 config -rw-r----- 1 universo universo 1675 Aug 31 10:09 id_rsa -rw-r----- 1 universo universo 394 Aug 31 10:09 id_rsa.pub -rw-r--r-- 1 universo universo 3108 Aug 31 10:19 known_hosts |
La solución está en permitir solo el acceso al archivo de llave privada (id_rsa). El archivo de llave pública (id_rsa.pub) puede ser accedido por cualquiera:
1 2 |
universo@digital:~$ chmod 600 .ssh/id_rsa universo@digital:~$ chmod 644 .ssh/id_rsa.pub |
Espero que estos tips te hayan sido de ayuda. Si quieres conocer más sobre el protocolo SSH puedes comenzar leyendo nuestra serie “Todo sobre el protocolo SSH en GNU/Linux”.