6Aug
SSH es un salvavidas cuando necesita administrar una computadora de manera remota, pero ¿sabía que también puede cargar y descargar archivos? Con las teclas SSH, puede omitir el ingreso de contraseñas y usar esto para las secuencias de comandos.
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 Linux, y con un pequeño ajuste, SSH también se ejecutará.
Copia de archivos sobre SSH
La copia segura es un comando realmente útil, y es realmente fácil de usar. El formato básico del comando es el siguiente:
scp [opciones] original_file archivo_destino
El mejor pateador es cómo formatear la parte remota. Cuando direcciona un archivo remoto, debe hacerlo de la siguiente manera:
user @ server: path /to/ file
El servidor puede ser una URL o una dirección IP.Esto es seguido por 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 distintivo [-P]( tenga en cuenta que se trata de una P mayúscula).Esto me permite especificar un número de puerto en lugar del 22 predeterminado. Esto es necesario para mí debido a la forma en que he configurado mi sistema.
A continuación, mi archivo original es "url.txt" que está 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é sucede 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 "Escritorio" de mi computadora.
Para copiar directorios completos, necesitarás usar el indicador [-r]( ten en cuenta que es una letra r minúscula).
También puede combinar banderas. En lugar de
scp -P -r. ..
Puede hacer
scp -Pr. ..
La parte más difícil aquí es que la finalización de pestañas no siempre funciona, por lo que es útil tener otro terminal con una sesión SSH ejecutándose para que sepadónde poner cosas
SSH y SCP sin contraseñas
La copia segura es excelente. 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 sinceros, es muy difícil introducir su contraseña en una computadora remota a la que obviamente tiene acceso todo el tiempo.
Bueno, podemos usar contraseñas usando archivos clave. Podemos hacer que la computadora genere dos archivos clave, un público que pertenece al servidor remoto, y uno privado que está en su computadora y necesita ser seguro, y estos se usarán en lugar de una contraseña. Muy conveniente, ¿verdad?
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 e "id_rsa.pub" paratu clave pública
Después de ingresar el comando, se le preguntará dónde guardar la clave. Puede presionar Enter para usar los valores predeterminados mencionados anteriormente.
A continuación, se le pedirá que ingrese una frase de contraseña. Presiona Enter para dejar esto en blanco, luego hazlo nuevamente cuando te pida confirmación. El siguiente paso es copiar el archivo de clave pública a su computadora remota. Puede 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 subsiguientes se pueden anexar a este archivo, al igual que el ~ /.ssh/ known_hosts file. 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 verificarse. Esta clave privada SOLO coincide con esa clave pública ONE, y la conexión debe iniciarse desde la computadora que tiene la clave privada. RSA es bastante seguro y usa una longitud de 2048 bits por defecto.
En realidad, es bastante similar en teoría al uso de su contraseña. Si alguien sabe su contraseña, su seguridad se va por la ventana. Si alguien tiene su archivo de clave privada, la seguridad se pierde en cualquier computadora que tenga la clave pública correspondiente, pero necesitan acceso a su computadora para obtenerla.
¿Esto puede ser más seguro?
Puede combinar una contraseña con archivos clave. Siga los pasos anteriores, pero ingrese una frase de contraseña segura. Ahora, cuando se conecta a través de SSH o usa SCP, necesitará el archivo de clave privada adecuado así como la frase de contraseña adecuada.
Una vez que ingrese su frase de contraseña una vez, no se le volverá a pedir hasta que cierre la sesión. Eso significa que la primera vez que SSH / SCP, tendrá que ingresar su contraseña, pero todas las acciones posteriores no lo requerirán. Una vez que cierre sesión en su computadora( no en la remota) o cierre su ventana de terminal, tendrá que ingresarla nuevamente. De esta forma, en realidad no está sacrificando la seguridad, pero tampoco se le acosa por contraseñas todo el tiempo.
¿Puedo reutilizar el par de claves públicas / privadas?
Esta es una muy mala idea. 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 súper secreto e importante.(Para obtener más información, consulte Cómo recuperarse después de que su contraseña de correo electrónico esté comprometida)
Lo mejor es crear nuevos pares de claves para cada computadora y cuenta que desee vincular. De esta forma, si una de sus claves privadas queda atrapada de alguna manera, entonces solo comprometerá una cuenta en una computadora remota.
También es muy importante tener en cuenta que todas sus claves privadas están almacenadas en el mismo lugar: en ~ /.ssh/ en su computadora, puede usar TrueCrypt para crear un contenedor seguro y encriptado, y luego crear enlaces simbólicos en su directorio ~ /.ssh/.Dependiendo de lo que esté haciendo, utilizo este super-paranoide método súper seguro para que mi mente se sienta a gusto.
¿Has usado SCP en cualquier script?¿Utiliza archivos clave en lugar de contraseñas?¡Comparte tu propia experiencia con otros lectores en los comentarios!