Я делаю SSH с двойным прыжком, чтобы сначала попасть на сервер, который имеет публичный IP-адрес и открыть порт SSH, затем SSHing на следующий компьютер, одновременно подключая мой локальный порт VNC к порту удаленных систем. На диаграмме:
[Моя локальная система] --- Туннель SSH (порт 5900 вперед)-> [Сервер] - Туннель SSH (порт 5900 вперед)-> [Удаленная система]
Я создал одностроковую команду, чтобы сделать все это, но есть одна загвоздка. x11VNC, по-видимому, аварийно завершает работу. Как буквально, я мог бы сделать 10 минут работы, прежде чем моя система снова зависнет, и мне придется перезапустить x11vnc. Но дело не в этом.
Команда, которую я использую, выглядит следующим образом:
ssh -L 5900:[REMOTE SYSTEM IP]:5900 user@FQDN.SERVER.NET 'ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10''
Теперь я включил здесь команду PKILL, чтобы она очистила замороженный экземпляр x11vnc, который все еще работает, чтобы я мог освободить порт 5900 (и не иметь процессов зомби, пронизывающих мою систему): Однако это не работает. Независимо от того, что я делаю, если это двойной прыжок, это просто возвращает x11vnc, команда не найдена
ПРИМЕЧАНИЕ: если я удаляю pkill, эта командная строка работает отлично. Но мне нужно убить зомби
Если с сервера, однако я пытаюсь запустить команду:
ssh [REMOTE SYSTEM IP] 'pkill x11vnc; x11vnc --ncache 10'
это работает отлично! Кто-нибудь знает, почему это не сработает при выполнении ssh-соединения "double hop"?