На виртуальной машине Debian Stretch (работающей в VirtualBox на хосте Windows 7) я хотел бы подключиться по SSH к определенному удаленному хосту (назовем его myServer
, с IP 12.34.56.78
). Для этого я использую свой Android-смартфон как USB-модем, который отлично работает: я могу выйти в Интернет и сгенерировать некоторый 'ping' и HTTP/HTTPS-трафик, и даже открыть SSH-соединение с помощью команды типа :
ssh [email protected] -b a.b.c.d -p portNumber -i ~/.ssh/id_rsa
Примечание: a.b.c.d
назначается ли динамический IP-адрес моему USB-интерфейсу при подключении?
Чтобы упростить задачу, я бы хотел иметь все эти настройки, ~/.ssh/config
чтобы мне оставалось только ввести ssh myServer
:
Host myServer
HostName 12.34.56.78
Port portNumber
# BindAddress a.b.c.d <== commented because this is part of the question
# BindInterface usb0 <== same as above
User httqm
IdentityFile ~/.ssh/id_rsa
- Я могу раскомментировать
BindAddress
строку и указать IP-адрес, что сработает, но не даст никаких преимуществ по сравнению с полной командной строкой SSH, посколькуa.b.c.d
она динамическая. используяBindInterfaceопция (без
BindAddress
) завершается ошибкой:~/.ssh/config: line 154: Bad configuration option: bindinterface ~/.ssh/config: terminating, 1 bad configuration options
Это сообщение об ошибке ожидаемо, так какBindInterface
директива была введена в OpenSSH 7.7 (https://www.openssh.com/releasenotes.html) тогда как у меня есть:
$ dpkg -l openssh-client
openssh-client 1:7.4p1-10+deb9u6
Чтобы обойти эту проблему, я рассматриваю несколько решений:
определить маршрут с
ip route ...
командами, чтобы все, на что направлено,myServer
проходило через интерфейс USB. До сих пор я пробовал команды вроде этой:ip route add to 12.34.56.78 protocol static dev usb0
Сама команда не возвращает ошибок, но я не могу открыть SSH-соединение с помощью ssh myServer
, я даже не могу его пропинговать.
определить правило Netfilter, чтобы весь трафик к/от 12.34.56.78 проходил через интерфейс usb0. Будет ли это работать? Стоит ли мне исследовать это решение?
обновление
openssh-client
с бэкпортов, если доступно
Можете ли вы объяснить, что будет работать / не будет (и почему)? Что бы вы предложили для достижения моей цели, которая заключается в подключении к моему SSH-хосту с помощью короткой командной строки, например, ssh myServer
учитывая, что мой исходный адрес является динамическим?