SSH поддерживает опцию ProxyCommand
, которая учитывает это.Capistrano также распознает эту конфигурацию и автоматически загрузит файл конфигурации SSH, если он будет помещен в .ssh/config
в вашем проекте (т. Е. Где вы запускаете cap
).
Создайте файл .ssh/config
в вашем проекте Capistranoс таким содержимым:
Host my-server
ProxyCommand ssh user@master-ip exec nc local-vm-ip %p
Это говорит SSH, что когда вы ssh my-server
, то, что вы действительно хотите, это сначала подключиться к user@master-ip
, а затем оттуда подключиться к local-vm-ip
.Другими словами, my-server
является псевдонимом для этой двухуровневой настройки SSH (вы можете дать ему любое имя, какое захотите).
Затем в вашей конфигурации Capistrano используйте "my-server"
(или как вы выбрали) в качествеадрес сервера, на котором вы хотите развернуть.Capistrano автоматически использует .ssh/config
и позаботится о двухуровневом SSH.