On the remote server, I use lp command to print documents. I can connect to this server through SSH.

How can I print a file directly from my local computer using that printer?

2 Answers 2


Basically, having lp (executed by ssh on the remote machine) read from STDIN which is provided outside the ssh-call like this should work:

cat file-to-print | ssh user@remotehost "lp -"

For more comfort, have a look at this guy's script that gives CUPS a sshlpr://-backend.


Depending on which printing system is running on the server, you may be able to run the same lp directly on your client machine and use SSH to forward its connection to the server.

For example, CUPS, which is the printing system of OSX and the most common on Linux nowadays, listens on port 631 (that's the standard IPP port). LPD, the traditional unix printing protocol, listens on port 515.

So if the printing system is CUPS, install a CUPS client on your local machine, and try

ssh -L 631:localhost:631 server.example.com sleep 999999999 &

Then run lpq or lpstat and see if you can reach the printers.

If you find a working configuration, put the SSH command above in a session startup script, or define a host alias with the appropriate LocalForward directive in ~/.ssh/config.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .