Página principal » cómo » Cómo copiar archivos a través de SSH de forma remota sin ingresar su contraseña

    Cómo copiar archivos a través de SSH de forma remota sin ingresar su contraseña

    SSH es un salvavidas cuando necesita administrar una computadora de forma remota, pero ¿sabía que también puede cargar y descargar archivos? Usando las claves SSH, puede omitir tener que ingresar contraseñas y usar esto para scripts!

    Este proceso funciona en Linux y Mac OS, siempre que estén configurados correctamente para el acceso SSH. Si está usando Windows, puede usar Cygwin para obtener una funcionalidad similar a la de Linux, y con un poco de ajuste, SSH también se ejecutará.

    Copiando Archivos Sobre SSH

    La copia segura es un comando realmente útil, y es muy fácil de usar. El formato básico del comando es el siguiente:

    scp [opciones] original_file destination_file

    El kicker más grande es cómo formatear la parte remota. Cuando direccionas un archivo remoto, debes hacerlo de la siguiente manera:

    usuario @ servidor: ruta / a / archivo

    El servidor puede ser una URL o una dirección IP. A esto le siguen dos puntos, luego la ruta al archivo o carpeta en cuestión. Veamos un ejemplo.

    scp -P 40050 Desktop / url.txt [email protected]: ~ / Desktop / url.txt

    Este comando presenta el indicador [-P] (tenga en cuenta que es una P mayúscula). Esto me permite especificar un número de puerto en lugar del valor predeterminado 22. Esto es necesario para mí debido a la forma en que configuré mi sistema.

    A continuación, mi archivo original es "url.txt", que se encuentra dentro de un directorio llamado "Escritorio". El archivo de destino está en "~ / Desktop / url.txt", que es lo mismo que "/user/yatri/Desktop/url.txt". Este comando está siendo ejecutado por el usuario "yatri" en la computadora remota "192.168.1.50".

    ¿Qué pasa si necesitas hacer lo contrario? Puede copiar archivos desde un servidor remoto de manera similar.

    Aquí, he copiado un archivo de la carpeta “~ / Desktop /” de la computadora remota a la carpeta “Desktop” de mi computadora.

    Para copiar directorios completos, deberá usar la marca [-r] (tenga en cuenta que es una r minúscula).

    También puedes combinar banderas. En lugar de

    scp -P -r…

    Solo puedes hacer

    scp -Pr…

    La parte más difícil aquí es que la finalización de la pestaña no siempre funciona, por lo que es útil tener otro terminal con una sesión SSH en ejecución para que sepa dónde colocar las cosas..

    SSH y SCP sin contraseñas

    Copia segura es genial Puede ponerlo en scripts y hacer que haga copias de seguridad en computadoras remotas. El problema es que es posible que no siempre esté cerca para ingresar la contraseña. Y, seamos honestos, es un gran problema colocar su contraseña en una computadora remota a la que obviamente tiene acceso todo el tiempo..

    Bueno, podemos usar contraseñas usando archivos de claves. Podemos hacer que la computadora genere dos archivos clave, uno público que pertenece al servidor remoto y uno privado que está en su computadora y necesita estar seguro, y estos se utilizarán en lugar de una contraseña. Bastante conveniente, a la derecha?

    En su computadora, ingrese el siguiente comando:

    ssh-keygen -t rsa

    Esto generará las dos claves y las pondrá en:

    ~ / .ssh /

    con los nombres "id_rsa" para su clave privada, y "id_rsa.pub" para su clave pública.

    Después de ingresar el comando, se le preguntará dónde guardar la clave. Puede presionar Intro para usar los valores predeterminados mencionados anteriormente..

    A continuación, se le pedirá que ingrese una contraseña. Presione Entrar para dejar esto en blanco, luego hágalo nuevamente cuando se le solicite confirmación. El siguiente paso es copiar el archivo de clave pública a su computadora remota. Puedes usar scp para hacer esto:

    El destino de su clave pública está en el servidor remoto, en el siguiente archivo:

    ~ / .ssh / authorized_keys2

    Las claves públicas posteriores se pueden adjuntar a este archivo, al igual que el archivo ~ / .ssh / known_hosts. Esto significa que si desea agregar otra clave pública para su cuenta en este servidor, debe copiar el contenido del segundo archivo id_rsa.pub en una nueva línea en el archivo authorized_keys2 existente.

    Consideraciones de Seguridad

    ¿No es esto menos seguro que una contraseña??

    En un sentido práctico, no realmente. La clave privada que se genera se almacena en la computadora que está utilizando y nunca se transfiere, ni siquiera para ser verificada. Esta clave privada SOLO coincide con esa UNA clave pública, y la conexión debe iniciarse desde la computadora que tiene la clave privada. RSA es bastante seguro y utiliza una longitud de 2048 bits por defecto.

    En realidad es bastante similar en teoría a usar tu contraseña. Si alguien tiene su contraseña, su seguridad se saldrá de la ventana. Si alguien tiene su archivo de clave privada, entonces la seguridad se pierde en cualquier computadora que tenga la clave pública correspondiente, pero necesitan acceso a su computadora para obtenerla..

    ¿Puede ser esto más seguro??

    Puede combinar una contraseña con archivos clave. Siga los pasos anteriores, pero ingrese una contraseña segura. Ahora, cuando se conecte a través de SSH o use SCP, necesitará el archivo de clave privada adecuado tanto como la contraseña correcta.

    Una vez que ingrese su contraseña una vez, no se le volverá a preguntar hasta que cierre su sesión. Eso significa que la primera vez que realice SSH / SCP, deberá ingresar su contraseña, pero todas las acciones subsiguientes no lo requerirán. Una vez que cierre sesión en su computadora (no la remota) o cierre la ventana de su terminal, entonces tendrá que ingresarla nuevamente. De esta manera, no estás realmente sacrificando la seguridad, pero tampoco estás siendo acosado por contraseñas todo el tiempo.

    ¿Puedo reutilizar el par de claves pública / privada??

    Esta es una idea realmente mala. Si alguien encuentra su contraseña y usa la misma contraseña para todas sus cuentas, ahora tienen acceso a todas esas cuentas. Del mismo modo, su archivo de clave privada también es super-secreto e importante. (Para obtener más información, consulte Cómo recuperar una vez que su contraseña de correo electrónico está comprometida)

    Es mejor crear nuevos pares de claves para cada computadora y cuenta que desee vincular. De esa manera, si una de sus claves privadas queda atrapada de alguna manera, solo comprometerá una cuenta en una computadora remota.

    También es muy importante tener en cuenta que todas sus claves privadas se almacenan en el mismo lugar: en ~ / .ssh / en su computadora, puede usar TrueCrypt para crear un contenedor seguro y encriptado, luego crear enlaces simbólicos en su ~ / .ssh / directorio. Dependiendo de lo que esté haciendo, uso este método súper paranoico súper seguro para tranquilizarme.


    ¿Has usado SCP en algún script? ¿Utiliza archivos clave en lugar de contraseñas? Comparte tu propia experiencia con otros lectores en los comentarios.!