Secure Copy es un estándar UNIX que se utiliza para transferir archivos de una computadora a otra. Él es cómo usar la función en macOS, todo a través de la ventana de Terminal.

Antes de las computadoras personales, había computadoras centrales y terminales de tiempo compartido. Los usuarios iniciarían sesión en una cuenta desde una terminal a un mainframe y emitirían comandos al mainframe para procesar.

A medida que Internet alcanzó la mayoría de edad en la década de 1990, surgió la necesidad de poder para usar tales comandos de terminal de forma segura a través de redes y computadoras. En 1994, un programador finlandés llamado Tatu Ylonen creó Secure Shell. Para conocer los antecedentes sobre el uso de Secure Shell, consulte nuestro otro artículo de introducción a 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 comando Terminal en macOS.

SCP permite la transferencia de archivos hacia y desde servidores SSH en ambas direcciones. SCP se basa en el comando RCP (Copia remota) (parte de BSD‘s r-commands), 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 el 22 (el puerto SSH estándar).

A diferencia de otros estándares de Internet, no existe un RFC o un estándar formal para SCP; es parte de el proyecto OpenSSH de código abierto. Puede ver todo el código fuente de OpenSSH en su proyecto GitHub.

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. con. Esto se hace mediante un inicio de sesión basado en nombre de usuario/contraseña en Terminal, o mediante el uso de infraestructura de clave pública (SSH pares de claves PKI ).

Una vez que haya iniciado sesión en el servidor remoto, use el comando’scp’seguido de opciones en la Terminal para transferir archivos. No hay forma de obtener listados de directorios usando scp, ni proporciona una forma de eliminar archivos remotos, pero puede usar comandos estándar del sistema de archivos UNIX como ls para obtener listas 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 esa pestaña de la ventana Terminal de macOS van al servidor en lugar de a su Mac.

Por ejemplo, en la terminal de macOS para obtener una lista de directorios de archivos en la máquina local o en el servidor remoto, puede ejecutar un comando ls como:

El”-l”le dice a ls que enumere los archivos verticalmente, en la ventana de Terminal con los detalles de cada archivo/carpeta, como los permisos de UNIX, el propietario, el grupo, el tamaño y la fecha y hora de creación del archivo. Si omite el indicador”-l”, el comando ls enumera solo los nombres de los archivos en varias columnas sin los detalles de cada archivo.

Para obtener más detalles sobre el comando ls, en la Terminal, escriba man ls y presione Return.

Para salir del sistema de páginas de manual en Terminal para cualquier página de manual, escriba Control-Z y presione Return.

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. Entonces, todos los comandos de la Terminal operan en ese directorio, a menos que vuelva a hacer cd en otro directorio o especifique una ruta completa en un comando.

Para subir un nivel de directorio en un sistema de archivos usando cd en Terminal, puede escribir:

y presionar Retorno.

Para ir a la parte superior (raíz) de un sistema de archivos, escriba:

y presione Return.

Puede hacer que Terminal imprima la ruta completa actual y el nombre del directorio en cualquier sistema de archivos escribiendo:

y presionando Retorno.

‘pwd’es el comando UNIX para obtener el directorio de trabajo actual (es decir, el directorio actual en el que opera el terminal). Para la página del manual en pwd en Terminal, escriba:

y presione Return.

Consulte la página de manual de scp para obtener más detalles sobre el uso de indicadores con el comando:

y presione Retorno.

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 para acceder. Por ejemplo:

le dice a scp que copie un archivo local en el pwd llamado”example.txt”al servidor en la dirección IP 10.10.0.1 en el directorio del sistema de archivos de ese servidor llamado”directoryName”como el usuario llamado”remote_user”con la copia del archivo remoto que también se llamará”example.txt”.

Si omite el nombre del archivo remoto, se usará el mismo nombre que el archivo fuente. Si desea cambiar el nombre del archivo remoto por otro, incluya 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 indicado debe tener permisos en el directorio remoto especificado para copiar el archivo.

Un ejemplo opuesto: copiar un archivo en el servidor remoto a su Mac, se ve similar. Por ejemplo:

copia 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 el signo menos seguido de la opción.

Se pueden usar dos banderas después de”scp”para especificar la versión uno dos del protocolo SSH:-1’o-2′. Por ejemplo:

fuerza el uso de la versión dos del protocolo para copiar el archivo ejemplo.txt en el pwd al servidor remoto en 10.10.0.1 en el directorio llamado”directoryName”con un nuevo nombre de archivo de”nuevoEjemplo.txt”.

Puede copiar directorios completos usando el indicador-r.

Algunos otros indicadores que puede usar con scp para cambiar la forma en que se comporta son:

-4 Usar solo direccionamiento IPv4-6 Usar solo direccionamiento IPv6-B Modo por lotes (suprime solicitudes adicionales de autenticación)-C Habilita la compresión en la conexión-F Usar un archivo de configuración ssh alternativo para las conexiones-i Especifica un archivo de clave privada alternativo para usar en las conexiones-l (Límite)-Establece el límite de ancho de banda de conexión en kb/s-O (Antiguo)-Fuerza el protocolo SCP antiguo en lugar del protocolo SSH SFTP más nuevo durante las transferencias-o Pasa opciones adicionales que no son de línea de comandos a ssh-P Conectar en un número de puerto alternativo que no sea 22-p Conservar todos los metadatos del archivo local en el archivo remoto después de la copia, incluidas las fechas y las horas-q (silencioso): no mostrar la información de progreso de la copia del archivo en la terminal la versión remota de scp para copias en lugar de la local-r Copia recursivamente directorios completos en lugar de solo archivos individuales-S Usar un programa SSH alternativo para administrar la conexión SSH-v (Verbose): imprime información adicional en la Terminal para todas las operaciones de scp Protocolo de transferencia de archivos SSH más nuevo (también 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 detalles.

copias locales de scp

scp funciona perfectamente bien en su red local entre diferentes tipos de computadoras y sistemas operativos. Puede conectarse y transferir archivos entre dos computadoras LAN con la misma facilidad que las computadoras remotas de Internet, suponiendo 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 puede consultar incluyen:

En futuros artículos exploraremos transferir archivos en Terminal utilizando dos protocolos de red más modernos: SFTP y rsync.

Categories: IT Info