Introducción
A veces, al probar nuestros dispositivos, necesitas enviar archivos desde tu portátil con Linux a tu PLC industrial Raspberry para poder ejecutarlos.
Otras veces, tienes que hacer lo contrario y enviar archivos o directorios desde tu Raspberry Pi PLC industrial a tu portátil.
Ahora, ya no tienes que preocuparte de enviar archivos a través de correo electrónico, o pendrive o cualquier otra forma que te haga perder tiempo. En este post, te explicamos cómo hacerlo de forma automática gracias a la automatización y el control industrial.
Enlaces relacionados
Explicación
SSH
Según Wikipedia, el protocolo Secure Shell (SSH) es un protocolo de red criptográfico para operar servicios de red de forma segura a través de una red no segura. Las aplicaciones típicas incluyen la línea de comandos remota, el inicio de sesión y la ejecución de comandos remotos, pero cualquier servicio de red puede asegurarse con SSH.
SSH proporciona un canal seguro a través de una red no segura utilizando una arquitectura cliente-servidor, conectando una aplicación cliente SSH con un servidor SSH. La especificación del protocolo distingue entre dos versiones principales, denominadas SSH-1 y SSH-2. El puerto TCP estándar para SSH es el 22. SSH se utiliza generalmente para acceder a sistemas operativos tipo Unix, pero también puede utilizarse en Microsoft Windows. Windows 10 utiliza OpenSSH como cliente SSH y servidor SSH por defecto.
SCP
SSH proporciona un canal seguro a través de una red no segura utilizando una arquitectura cliente-servidor, conectando una aplicación cliente SSH con un servidor SSH. La especificación del protocolo distingue entre dos versiones principales, denominadas SSH-1 y SSH-2. El puerto TCP estándar para SSH es el 22. SSH se utiliza generalmente para acceder a sistemas operativos tipo Unix, pero también puede utilizarse en Microsoft Windows. Windows 10 utiliza OpenSSH como cliente SSH y servidor SSH por defecto.
Si escribes el comando que aparece a continuación, verás la siguiente información:
man scp
SCP copia archivos entre hosts en una red. Utiliza SSH para la transferencia de datos, y utiliza la misma autenticación y proporciona la misma seguridad que SSH. SCP pedirá contraseñas o frases de paso si son necesarias para la autenticación.
El origen y el destino pueden especificarse como un nombre de ruta local, un host remoto con una ruta opcional de la forma [usuario@]host:[ruta], o un URI de la forma scp://[usuario@]host[:puerto][/ruta]. Los nombres de archivos locales pueden explicitarse utilizando nombres de ruta absolutos o relativos para evitar que SCP trate los nombres de archivos que contienen ':' como especificadores de host.
Al copiar entre dos hosts remotos, si se utiliza el formato URI, sólo se puede especificar un puerto en el destino si se utiliza la opción -3.
Primero de todo, comprueba que tu SSH está activado:
sudo systemctl status ssh.service
Si no lo está, inícialo:
sudo systemctl start ssh.service
Entonces, debemos tener claro que la estructura es siempre la misma, con opciones después de SCP:
Asumiendo la siguiente información sobre un PLC de código abierto Raspberry Pi:
- Usuario: pi
- Dirección ETH IP: 10.10.10.20
- Dirección WLAN IP: 192.168.1.2
¡Vamos a ver algunos ejemplos!
Copia del host remoto al local
scp [email protected]:/home/pi/sample-file-from-raspberry.txt /home/user/file-in-linux-laptop.txt
scp [email protected]:/home/pi/sample-file-from-raspberry.txt /home/user/file-in-linux-laptop.txt
Copia del host local al remoto
scp -r /home/user/test-directory [email protected]:/home/pi/
scp -r /home/user/test-directory [email protected]:/home/pi/
Consulta el manual para obtener más opciones e información sobre el SCP:
man scp
Cómo usar SCP para transferir archivos entre Linux y Raspberry PLC