from Hacker News

Show HN: An SSH based utility to transfer pipes across machines – beam

by ksdme9 on 1/4/25, 7:27 AM with 31 comments

Hey HN,

At work, I was annoyed about having to download logs by writing them out to files and transferring them over to my local over HTTP (admittedly, this is because of a rather novel architectural situation).

So, I built a tool in Go that lets you pipe contents into an SSH server for sending and reading them out on another connection. You can also use this tool to transfer files. Just cat the file on the sender end and redirect the output of the receiver end to a file.

Please note that the transfer rate is heavily dependent on your connection and proximity to the public ssh.beam.camp host. This is because there is no simple way to auto connect to the closest host using a regular SSH client.

Hope you find beam useful. Have a nice weekend.

  • by Darkskiez on 1/4/25, 10:18 AM

    This is a great way to send all of your files to the author of the utility / operator of the website.
  • by f-az on 1/4/25, 9:50 AM

    After reading the readme I’m confused what the advantage is over just regular piping. ‘’’ command-on-server1 | ssh user@server2 'command-on-server2' ‘’’
  • by lathiat on 1/4/25, 12:24 PM

    Maybe better to use something like magic wormhole? https://github.com/magic-wormhole/magic-wormhole
  • by remram on 1/4/25, 4:27 PM

    This seems very similar to ssh-j.com (open source: https://bitbucket.org/ValdikSS/dropbear-sshj)
  • by rzzzt on 1/4/25, 10:02 AM

    Is "ssh.beam.camp" an example hostname, or an instance that you run?
  • by moralestapia on 1/4/25, 2:10 PM

    @kdsme9 I think this is great and you've done a great work putting it together and sharing it with us for free.

    Using the public key to match streams on both ends is super clever. I will start using this since it fills a need I have almost every day. I work with many small AWS instances and sometimes I just need to copy a small file or something to them without having to install a whole new OS like some short sighted people here are suggesting.

    You also shipped your product, which is something only ~1% of developers actually do, so congrats.

    Forget about the naysayers and thank you for creating this, it will make my work easier :).

    Edit: Downvote me all you want, I still like this thing.

  • by ilyagr on 1/4/25, 10:55 PM

    I have used https://pipe.pico.sh/ for this. pico.sh also has a bunch of other SSH-accessible services, e.g. pastes, and paid (or free if self-hosted) port tunneling.
  • by eqvinox on 1/4/25, 10:54 AM

    I don't see any advantage over plain "-o 'ProxyJump box.in.the.middle'"? I guess this is supposed to buffer things? But then again, that's what "tail -f" is for…

    More confused than anything else…

  • by whatever1 on 1/4/25, 10:28 AM

    Huh? Why I cannot just ssh from machine 2 to machine 1 and just type `tail`?