Вот решение, которое не требует написания дополнительного кода на Python:
Если вы настроили свою конфигурацию SSH для туннелирования через прокси-сервер SOCKS, вы можете указать Fabric использовать конфигурацию SSH.Это мило.
Пример $HOME/.ssh/config file
:
Host bastion
HostName bastion.yourdomain.com
DynamicForward 0.0.0.0:1080
ServerAliveInterval 120
ServerAliveCountMax 30
Host hostbehindthebastion.yourdomain.com
ProxyCommand /usr/bin/nc -x 127.0.0.1:1080 %h %p
Теперь скажите Fabric использовать конфигурацию:
env.use_ssh_config = True
env.hosts = [
"user@hostbehindthebastion.yourdomain.com",
]
Теперь ssh bastion
в одном окне, затем запуститеfab
из другого окна.
Дополнительную информацию см. В официальной документации Fabric .
NB.Для использования этого решения на вашем компьютере должен быть установлен nc (netcat).