Рейтинг:0

Запуск сценария оболочки с ProxyCommand, который вычисляет IP-адрес и запускает сеанс SSH.

флаг ng

Я хотел бы, чтобы моя конфигурация SSH вызывала сценарий в определенных ситуациях для разрешения IP-адреса, отличного от того, который я предоставляю. В этой ситуации я на самом деле не хочу проксировать через другой хост, просто сменить хост, на который выполняется SSH (хотя в некоторых ситуациях я бы как прокси через хост, поэтому объединяем это в один скрипт).

Это довольно длинный сценарий, и на самом деле он не предназначен для того, чтобы быть анлайнером в ПроксиКоманда директива.

Это выдержка из сценария, которая показывает проблему:

#!/бин/баш

instance_id="$1"
пользователь = "$2"
порт = "$3"

если [[ $instance_id == *"i"* ]]; тогда
  filter="--instance-id ${instance_id}"
еще
  filter="--filters Имя=IP-адрес,Значение=${instance_id}"
фи

public_ip=$(aws ec2 description-instances $filter | jq -r '.Reservations[0].Instances[0].PublicIpAddress')

если [[ $public_ip == "null" ]]; тогда
  истинный
еще
  ssh $user@$public_ip -p $порт
фи

И это мой ~/.ssh/config:

Хост i-* mi-* 172,2* 172,3*
   Пользователь cbell
   ProxyCommand ~/.ssh/aws_iea_proxy_command.sh %h %r %p

Если я попытаюсь подключиться по ssh к идентификатору экземпляра, например SSH i-030ee3dd4f2712b3b, скрипт срабатывает, но интерактивная оболочка мне не выдается.

[connor@Enigma:~/.ssh] 130 $ ssh i-030ee3dd4f2712b3b
Псевдотерминал не будет выделен, потому что stdin не является терминалом.
-bash: строка 1: SSH-2.0-OpenSSH_8.2p1: команда не найдена

Как заставить работать команду SSH в сценарии через ProxyCommand?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.