SSH между N серверами

SSH между N серверами

У меня есть n серверов, например c0001.test.cloud.com, c0002.test.cloud.com, c0003.test.cloud.comи я хочу сделать ssh между этими серверами, например: с сервера: c0001 сделать ssh на c0002 и затем выйти с сервера. Возвращаемся на c0001 сделать ssh на c0003 и затем выйти с сервера.

Таким образом, он выполнит скрипт без ввода каких-либо данных во время выполнения, и у нас может быть n серверов. Я написал один скрипт:

str1=c0001.test.cloud.com,c0002.test.cloud.com,c0003.test.cloud.com
string="$( cut -d ',' -f 2- <<< "$str1" )"
echo "$string"
for j in $(echo $string | sed "s/,/ /g") do ssh appAccount@j done

Но этот скрипт не работает нормально. Я также проверил его, передавая параметры вроде: -o StrictHostKeyChecking=noи <<'ENDSSH', но он не работает. Так как же нам добиться ssh между несколькими серверами с помощью скриптов?

решение1

  1. Вы говорите , используя как переменную оболочки. Но это означает, что вам нужно ссылаться на эту переменную как , например, .for j in …(values)… do ssh appAccount@j donej$jssh "appAccount@$j"
  2. Вам нужна точка с запятой (;) или новую строку между ssh "appAccount@$j"и done.

Есть и другие проблемы — например, все ссылки на переменные оболочки должны быть заключены в кавычки, — но вышеизложенное должно помочь вам начать.

Связанный контент