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
Conceptos básicos
How to program Raspberry PLC
TouchBerry Pi
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