Aspectos a tener en cuenta
Como SCP utiliza el cifrado SSH, necesitarás la contraseña ssh para que se realice la transferencia de archivos. Además, es necesario tener permiso de lectura en la máquina de la que estás a punto de copiar y privilegios de escritura en la(s) máquina(s) a la que copiarás.
Para la autenticación y la configuración de la conexión, deberás generar un par de llaves ssh en el terminal mediante el siguiente comando:
ssh-keygen -t rsa
Copia esta llave del sistema remoto usando:
ssh-copy-id user@remote_machine
Una vez que te hayas autenticado en la(s) máquina(s) remota(s), la llave pública se copiará y estarás listo para iniciar las transferencias.
Si no recuerdas la(s) contraseña(s) de root para cada sistema, puedes hacer que el cliente ssh seleccione el archivo desde el cual se lee automáticamente la llave de identidad privada para la confirmación de RSA.
Para la versión 2 del protocolo, la ruta de identidad predeterminada de la llave del host es ~/.ssh/id_dsa, mientras que para la versión 1 del protocolo es ~/.ssh/id_rsa. Luego, debes averiguar dónde está almacenada la copia de seguridad de las llaves privada y pública para poder emplear el comando ssh para usarlas automáticamente.
Para la ruta /back-up/home/jack/.ssh, el comando es el siguiente:
ssh -i /back-up/home/user/.ssh/id_dsa user@yourserver.servername.domain
Consejo profesional: esta opción tiene el valor predeterminado –overwrite [yes], así que, a menos que especifiques la opción –overwrite no o –overwrite ask en el comando scp, la operación sobrescribirá los archivos que tienen nombres y ubicaciones idénticos sin ninguna advertencia.
Si estás transfiriendo archivos grandes, te recomendamos utilizar una sesión tmux o que ejecutes el comando dentro de una pantalla diferente. Además, también debes usar la opción –v para transferencias grandes. Esto forzará a scp a mostrar cualquier conexión de depuración, autenticación o problemas de configuración.
Copiando archivos con el comando SCP
La mejor parte de SCP en Linux es que te da la posibilidad de transferir archivos entre dos hosts o entre un host y una máquina local. Veamos cómo se debería usar el comando para cada tipo de transferencia.
Archivo local a una ubicación remota
Copiaremos un archivo local scp.zip, al usuario de la máquina remota llamado root. El nombre de usuario es seguido por la dirección IP del servidor.
Ejemplo:
scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Si no tienes configurada una confirmación automática de cliente ssh, se te solicitará que ingreses la contraseña del usuario de la máquina remota y verás un medidor de progreso. Se vería algo como esto:
root@191.162.0.2’s password: novel3.zip 100% 0 0.0KB/s 00:00
Pero digamos que la máquina remota está configurada para escuchar las conexiones SSH en un puerto que no sea el predeterminado 22. En este caso, debes especificar ese puerto usando una opción.
scp -P 2322 /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article
Si también quieres cambiar el nombre del archivo durante la operación de transferencia, tu comando tendrá este aspecto (si tu puerto no es el predeterminado, simplemente agrega –P y el número de puerto):
scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article/howtoscp.zip
Si quieres copiar un directorio que tiene más archivos y/o subdirectorios, usa el comando -r y también puede ser -v para que muestre detalles de la conexión
scp -r -v /users/Edward/desktop root@191.162.0.2:/writing/article
Archivo remoto a máquina local
En este proceso, el origen y el destino del comando se invierten, por lo que esto debe reflejarse en la sintaxis. Esta vez, estamos intentando copiar scp.zip desde el mismo host remoto a nuestra máquina local:
scp root@191.162.0.2:/writing/articles/SCP.zip Users/Edward/Desktop
Nuevamente, esto debería solicitar la misma salida de inicio de sesión SSH en la que debes ingresar la contraseña, a menos que la autenticación esté deshabilitada por los privilegios de sudo, o si forzaste al cliente ssh a usar una llave privada en tu máquina.
Archivo remoto a otra ubicación remota
Para copiar archivos de un host remoto a otro, deberás ingresar las contraseñas de ambas cuentas después de ejecutar este comando en tu terminal.
Ejemplo:
scp root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
El comando anterior copia el archivo fuente /writing/article/scp.zip desde el primer host al segundo. Para copiar carpetas, simplemente agrega la opción –r y especifica la ruta de la carpeta en lugar del archivo dentro de ella, como hicimos antes.
En circunstancias normales, el archivo va directamente del primer host remoto al segundo. Sin embargo, si quieres redireccionar la operación a través de tu máquina, puedes agregar la opción -3:
scp -3 root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing
Extraído de https://www.hostinger.es/
No hay comentarios:
Publicar un comentario