Мой вопрос в основном заключается в том, как превратить мои существующие два шага в один.
У меня есть рабочий SSH-туннель, настроенный между двумя компьютерами с использованием промежуточного сервера, например:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
В настоящее время я делаю SSH от Kubuntu_laptop к Debian_Server, а затем от Debian_Server к Kubuntu_desktop. Я хотел бы сделать эту одну команду SSH, выпущенную на моем Kubuntu_laptop в bash, которая приводит к тому, что я подключаюсь к Kubuntu_desktop (shell / bash).
Сейчас я использую следующие команды.
Шаг 1:
me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server
Шаг 2:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Затем я подключаюсь к kubuntu_desktop через SSH (из kubuntu_laptop).
Ключи RSA необходимы для всех соединений SSH. Логин по паролю полностью отключен. Обратите внимание, что учетные записи пользователей на двух компьютерах разные.
По поводу подключения этой ноги:
Debian_Server<--nat_fw<--Kubuntu_desktop
Вот как это установлено.
Шаг 0:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
Обратите внимание, что Kubuntu_desktop подключается к посреднику как user@mydebian.com (не admin @ debian_server). Но когда я подключаюсь к Kubuntu_desktop, я подключаюсь как пользователь admin.
Я не могу изменить существующий порт мониторинга (5234) или номер удаленного (- R) порта (1234 в этом примере). Я не могу изменить безопасность SSH, чтобы разрешить вход по паролю. Я не могу открыть новые порты брандмауэра. Я не могу изменить учетные записи пользователей (кроме ноутбука).
(Когда у меня это заработает, я хочу, чтобы vnc или какое-либо решение для поддержки удаленного рабочего стола работало через туннель SSH.)
Убедитесь, что netcat установлен на сервере Debian, и используйте ProxyCommand
в вашей локальной конфигурации SSH (~/.ssh/config
).
Host Kubuntu_desktop
User admin
IdentityFile ~/.ssh/Kubuntu_desktop.rsa
ProxyCommand ssh -i ~/.ssh/id_rsa admin@Debian_Server nc localhost 1234