На моем рабочем ноутбуке, если мне нужно SSH к неработающему компьютеру, мне нужно пройти через прокси-сервер, но только когда я нахожусь в рабочей сети (в офисе или в VPN). Я делаю это, устанавливая строку ProxyCommand в моем файле конфигурации SSH. Когда я не нахожусь в офисе или в глобальной сети, я не хочу использовать прокси. Есть ли простой способ автоматизировать решение использовать или не использовать прокси?
1 ответ
[Отвечать на комплименты Касперда за ServerFault.]
В вашем .ssh/config используйте ключевое слово Match
для создания условного раздела.
Ключевое слово Match
принимает разные аргументы, один из которых - exec
который позволит вам запустить внешнюю команду и использовать возвращаемое значение этой команды, чтобы решить, применяется этот раздел или нет.
Вы можете использовать это для запуска скрипта, который проверяет любые сетевые настройки, которые вы можете использовать, чтобы определить разницу между различными сетями. Сценарий должен возвращать 0, когда требуется ProxyCommand
и любое ненулевое значение, когда ProxyCommand
не требуется.
Вот пример того, как может выглядеть конфигурация:
Match host external-host.example.com exec /home/joe/bin/need-proxy
ProxyCommand /home/joe/bin/proxy-script %h %p