Cómo usar SCP para transferir archivos en macOS Terminal

Imagen del héroe del artículo

AppleInsider puede recibir una comisión de afiliado por compras realizadas a través de enlaces en nuestro sitio. Secure Copy es un estándar UNIX que se utiliza para transferir archivos de una computadora a otra. Explica cómo usar la función en macOS, todo desde la ventana de la terminal. Antes de las computadoras personales, existían las computadoras centrales y las terminales de tiempo compartido. Los usuarios iniciarían sesión en una cuenta desde un terminal a un mainframe y emitirían comandos al mainframe para su procesamiento. A medida que Internet alcanzó la mayoría de edad en la década de 1990, surgió la necesidad de poder usar dichos comandos de terminal de forma segura en redes y computadoras. En 1994, un programador finlandés llamado Tatu Ylonen creó Secure Shell. Para obtener información básica sobre el uso de Secure Shell, consulte nuestro otro artículo introductorio de SSH. Como parte de Secure Shell, se creó el programa SCP (Secure Copy Protocol). SCP es tanto un protocolo como un programa UNIX que se puede ejecutar desde la línea de comandos de Terminal en macOS. SCP permite transferencias de archivos hacia y desde servidores SSH en ambas direcciones. SCP se basa en el comando RCP (Copia remota) (parte de los comandos r de BSD), que se usó originalmente cuando BSD saltó a la fama a mediados de la década de 1980. El puerto TCP predeterminado utilizado para la transferencia de archivos SCP es 22 (el puerto SSH predeterminado). A diferencia de otros estándares de Internet, no existe un RFC o un estándar formal para SCP; es parte del proyecto OpenSSH de código abierto. Puede ver el código fuente completo de OpenSSH en el proyecto de GitHub.

Contenidos

Uso básico

Para usar SCP para transferir archivos, primero debe establecer una conexión SSH iniciando sesión en el servidor remoto al que desea transferir archivos. Esto se hace a través de un inicio de sesión basado en nombre de usuario/contraseña en el terminal o mediante el uso de una infraestructura de clave pública (pares de claves SSH-PKI). Una vez que haya iniciado sesión en el servidor remoto, use el comando «scp» seguido de las opciones en la terminal para transferir archivos. No hay forma de obtener listados de directorios con scp, ni proporciona una forma de eliminar archivos remotos, pero puede usar comandos estándar del sistema de archivos UNIX como ls para obtener listados de directorios una vez que haya iniciado sesión en la computadora remota. Después de establecer una conexión SSH, todos los comandos en esta pestaña de la ventana Terminal de macOS van al servidor y no a su Mac. Por ejemplo, para obtener una lista de directorio de archivos en la computadora local o servidor remoto en la terminal macOS, puede ingresar un comando ls como este: El indicador «-l» le dice a ls que enumere los archivos verticalmente en la ventana de la terminal con los Detalles de cada archivo/carpeta, como permisos UNIX, propietario, grupo, tamaño y fecha y hora en que se creó el archivo. Si omite el indicador «-l», el comando ls solo enumera los nombres de archivo en varias columnas, sin los detalles de cada archivo. Consulte Tipo de terminal para obtener más detalles sobre el comando ls hombre ls y presiona Regresar. Para salir del sistema de páginas man en Terminal para cualquier página man, escriba Ctrl-Z y presiona Regresar. También puede usar el comando ‘cd’ (cambiar directorio) para cambiar directorios dentro de un sistema de archivos local o remoto. Simplemente escriba «cd» seguido de un espacio y el nombre o la ruta del directorio al que desea cambiar. Todos los comandos de Terminal funcionan con este directorio, a menos que vuelva a cambiar a un directorio diferente o especifique una ruta completa en un comando. Para subir un nivel de directorio en un sistema de archivos en Terminal, puede escribir: Para llegar a la parte superior (raíz) de un sistema de archivos, escriba: Puede decirle a Terminal la ruta completa actual y el nombre de directorio en cada sistema de archivos escribiendo it: ‘pwd’ es el comando UNIX para obtener el directorio de trabajo actual (es decir, el directorio actual donde está funcionando el terminal). Para la página de manual de pwd, escriba lo siguiente en Terminal: Para obtener más información sobre el uso de indicadores con el comando, consulte la página de manual de scp:

ejemplos de scp

SCP o ‘scp’ en la terminal es fácil de usar. La sintaxis básica del comando es «scp» seguido del nombre de archivo, el nombre de usuario, el nombre del servidor o la dirección IP y la ruta del directorio remoto en ese servidor al que se accederá. Por ejemplo: le dice a scp que copie un archivo local en el pwd llamado «example.txt» al servidor con la dirección IP 10.10.0.1 en el directorio del sistema de archivos de ese servidor llamado «directoryName» porque el usuario llamado «remote_user» debe copiar el archivo remoto. también se llamará «ejemplo.txt». Si omite el nombre del archivo remoto, se utiliza el mismo nombre que el archivo de origen. Si desea cambiar el nombre de archivo remoto, agregue un nuevo nombre de archivo después de la ruta del directorio remoto al final del comando: también tenga en cuenta que el usuario especificado debe tener permisos para el directorio remoto especificado para poder copiar el archivo. Un ejemplo inverso: copiar un archivo en el servidor remoto a su Mac es similar. Por ejemplo: copie el archivo llamado «example.txt» en el directorio «directoryName» en el servidor remoto al escritorio de su Mac. También puede especificar banderas inmediatamente después de la parte scp usando un signo menos seguido de la opción. Se pueden usar dos banderas después de «scp» para indicar la versión uno o dos del protocolo SSH: -1′ o -2′. Ejemplo: fuerza el uso de la versión dos del protocolo para copiar el archivo example.txt en pwd al servidor remoto en 10.10.0.1 al directorio llamado «directoryName» con el nuevo nombre de archivo «newExample.txt». Puede copiar directorios completos usando el indicador -r. Algunas otras banderas que puede usar con scp para cambiar el comportamiento son:

  1. -4 Usar solo direccionamiento IPv4
  2. -6 Usar solo direccionamiento IPv6
  3. -Modo por lotes B (suprimir solicitudes adicionales de autenticación)
  4. -C Habilita la compresión de conexión
  5. -F Usar un archivo de configuración ssh alternativo para las conexiones
  6. -i Especifica un archivo de clave privada alternativo para usar en las conexiones
  7. -l (límite) – Establece el límite de ancho de banda de conexión en kbps
  8. -O (antiguo): obliga a las transferencias a usar un protocolo SCP anterior en lugar de un protocolo SSH SFTP más nuevo
  9. -o Pasar opciones adicionales que no sean de línea de comandos a ssh
  10. -P Conéctese usando un número de puerto que no sea 22
  11. -p Conserva todos los metadatos del archivo local en el archivo remoto después de la copia, incluidas la fecha y la hora
  12. -q (Silencio) – No mostrar información de progreso de la copia de archivos en la terminal
  13. -R (Remoto) – Fuerza el uso de la versión remota de scp para copias en lugar de la local
  14. -r Copia directorios completos de forma recursiva en lugar de solo archivos individuales
  15. -S Usar un programa SSH alternativo para administrar la conexión SSH
  16. -v (detallado): imprime información adicional en el terminal para todas las operaciones de scp

La opción -O se proporciona para los casos en los que se conecta a servidores SSH más antiguos que no implementan el Protocolo de transferencia de archivos SSH más nuevo (que también forma parte de SSH). Puede usar la opción -o para pasar parámetros adicionales a ssh que no están disponibles como opciones de línea de comandos. Consulte la página del manual de scp para obtener más información.

copias locales de scp

scp funciona perfectamente en su red local entre diferentes tipos de computadoras y sistemas operativos. Puede conectarse a dos computadoras LAN y transferir archivos entre ellas con la misma facilidad que las computadoras remotas de Internet, siempre que ambas computadoras LAN ejecuten SSH. Microsoft incluye SSH en versiones posteriores de Windows 10 a partir de 2019. Para usar con versiones anteriores de Windows, es posible que deba instalar un servidor SSH de terceros en la computadora con Windows.

Recursos adicionales

Algunos libros interesantes sobre SSH que tal vez desee leer son: En futuros artículos exploraremos la transferencia de archivos en Terminal utilizando dos protocolos de red más modernos: SFTP y rsync.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.