Я хочу создать массив с переменными $user
и $host
чтобы передать их ssh
команда.
Я пытался:
my_array=('something1' 'something2' 'user' 'host_ip')
sudo ssh ${my_array[2]}@${my_array[3]}
my_array=('something1' 'something2' 'user' 'host_ip')
sudo ssh host -l ${my_array[2]} ## here host is not a variable
my_array=('something1' 'something2' 'username' 'host_ip')
my_var="${my_array[2]}@${my_array[3]}"
sudo ssh $my_var
Во всех случаях меня спрашивают пароль локального пользователя (из-за sudo
) и мой ответ принят. Когда я ввожу пароль удаленного пользователя, я получаю следующий результат и могу попробовать agian:
Permission denied, please try again.
Ноты:
sudo ssh user@host
).Большое спасибо!
редактировать
По какой-то причине на следующий день все вышеперечисленное и приведенные ниже решения сработали ... Кто-нибудь может это объяснить?
Проблема заключалась в кавычках в элементе хоста массива, потому что я использую IP. Кажется, что числовой элемент необходим, когда IP-адрес используется в качестве хоста. Итак, код должен быть:
my_array=('something1' 'something2' 'user' host_ip)
sudo ssh ${my_array[2]}@${my_array[3]}
Я думаю, что это проблема с цитированием, добавьте к переменным двойные кавычки:
my_array=('something1' 'something2' 'user' 'host')
sudo ssh ${my_array[2]}@"${my_array[3]}"