Назад | Перейти на главную страницу

Печать на локальном принтере из удаленного сеанса SSH

У меня следующая проблема. Мои обычные рабочие файлы находятся на удаленном компьютере, к которому я могу подключиться по SSH. Я хочу иметь возможность печатать с удаленного компьютера на локальном принтере без необходимости печатать в файл, а затем в файл scp на локальный компьютер.

Мне нужен сценарий или программа, которую можно вызвать на удаленном компьютере, которая принимает файл в качестве аргумента (или считывает ввод из стандартного ввода, это не имеет значения) и каким-то образом выполняет lpr на локальной машине.

Ограничения: 1) На локальной машине не запущен SSH-сервер. Таким образом, у меня не может быть сценария, который возвращает файл scp на локальный компьютер и удаленно выполняет lpr.

2) На локальном компьютере нет почтового сервера, поэтому я не могу отправить файл по электронной почте и отфильтровать его локально.

Обе машины работают под управлением Linux с обычным набором программ, и я могу запускать свои собственные сценарии и компилировать программы. Любые идеи?

Предполагая, что на вашем локальном сервере Linux работает сервер печати, вы можете использовать переадресацию портов ssh, чтобы он работал ...

  1. На вашем локальном компьютере вам потребуется сервер печати, настроенный для приема удаленных запросов на печать с использованием протокола lpr.
  2. Когда вы подключаетесь к удаленному серверу, добавьте это в свою командную строку ssh: -R 515:localhost:515
    Это заставит ssh прослушивать TCP-порт 515 на удаленном сервере и перенаправлять все подключения к локальному компьютеру через туннель ssh. После этого соединения будут перенаправлены на порт 515 локального хоста, который является вашим сервером печати.
  3. Настройте очередь печати на удаленном компьютере, которая указывает на localhost: 515.

Если на удаленном сервере уже работает сервер печати, я считаю возможным изменить порты, чтобы предотвратить конфликт.

Нашел нужную программу: bcvi использует обратную переадресацию портов, чтобы разрешить выполнение различных команд на локальном компьютере. Он плохо документирован и, в частности, делает серьезные предположения об установке, и в моем случае изменения по умолчанию, внесенные в файл инициализации оболочки, противоречат обработке переменной TERM в другом месте, но исходный код не требует пояснений и прост. модифицировать.

При печати с помощью управляющих кодов VT100 вы можете отправлять PostScript или другие двоичные файлы с помощью этих команд обратно на локальный принтер, ваш клиент может отличаться.

Some terminals support local printing:
Print Screen        <ESC>[i
Print the current screen.
Print Line      <ESC>[1i
Print the current line.
Stop Print Log      <ESC>[4i
Disable log.
Start Print Log     <ESC>[5i
Start log; all received text is echoed to a printer.

http://www.termsys.demon.co.uk/vtansi.htm#printing