Isso pressupõe que você esteja executando o Linux em ambos os lados. Se você estiver executando o Windows, existem possibilidades (como putty
e CygWin
), mas é um pouco mais difícil de fazer.
Sim, você provavelmente pode. Mas é bem provável que isso não queira fazer:
-
Se você estiver piscando, o que acontece se a conexão de rede for interrompida?
-
Você realmente deseja permitir que uma nuvem "infecte" seu USB local?
Porta serial
Se o seu dispositivo USB local tiver algo como uma porta serial para piscar, talvez você possa usar algum encaminhamento de porta local e socat
para se conectar à linha serial. Desde que o seu ambiente de desenvolvimento permita flash
usando uma porta TCP. Como segue:
Na sua máquina local: ssh -R1234:localhost:1234 [email protected]
Isso abre a porta 127.0.0.1:1234
on remote.example.com
, que então se conecta a 127.0.0.1:1234
em sua máquina local.
Agora você usa socat
para se conectar à linha serial do seu USB
:
Na sua máquina local: socat -d -d -d tcp-listen:1234,reuseaddr,fork,bind=127.0.0.1 /dev/ttyUSB0
TCP - > Tubo
Por outro lado, se o software não puder usar o TCP, mas quiser falar com um pipe ou tty, você poderá usar socat
novamente para fornecer isso:
No controle remoto: socat -d -d -d unix-listen:.mypipe tcp-connect:127.0.0.1:1234
Agora, deixe seu software remoto se conectar a .mypipe
e ele estará conectado de forma transparente a /dev/ttyUSB0
em seu computador local.
Mas sua milhagem pode variar. Depende muito do que seu software na nuvem precisa.
Drivers USB especiais
Por exemplo, pode ser que você precise criar um stub especial, que fala com USB
. Felizmente isso também pode ser feito pelo socat:
No lado local: socat -d -d -d tcp-listen:1234,reuseaddr,fork,bind=127.0.0.1 exec:/path/to/program
O lado remoto é mais difícil, porque se ele espera falar com USB
, você provavelmente precisará criar um driver USB fictício para o kernel do Linux e carregá-lo lá. Não é fácil de gerenciar, desculpe.
Para resumir
SSH
em combinação com socat
é capaz de fornecer quase toda a interconexão entre sua máquina local e a "nuvem" que você possa imaginar.
No entanto, conectar-se a um local USB
pode ou não precisar de algum tratamento especial, em ambos os lados. A parte problemática não é SSH
ou socat
, é como permitir que o software remoto converse sobre esse túnel para o seu USB local.
Talvez alguém saiba um pouco de plug and play USB emulator
para o Linux, mas nunca encontrei uma fera assim. E eu faço Linux há quase 20 anos ..
Como ponto de partida, talvez veja essa resposta