Gostaria de criar um array com as variáveis $user
e $host
para poder passá-las ao ssh
comando.
Eu tentei:
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
Em todos os casos, sou solicitada a senha do usuário local (por causa de sudo
) e minha resposta é aceita. Quando digito a senha do usuário remoto, recebo a seguinte saída e tento novamente:
Permission denied, please try again.
Notas:
- Estou usando um IP como host
- Minha senha é a correta e está funcionando quando não uso variáveis (
sudo ssh user@host
). - Eu instalei recentemente o pacote sshpass
Muito obrigado!
Editar
Por alguma razão, no dia seguinte, todas as soluções acima e abaixo funcionaram... Alguém pode explicar isso?
Eu acho que é problema de citação, adicione aspas duplas às variáveis:
O problema foram as aspas no elemento host do array pois estou usando um IP. Parece que um elemento numérico é necessário quando um IP é usado como host. Então o código deve ser: