Você pode querer tentar instalar o sshpass e alterar sua chamada para ssh-copy-id
:
sshpass -p "$TMP_PASS" ssh-copy-id
Eu preciso automatizar algumas implantações de identidade, de preferência usando ssh-copy-id
.
Estou tentando fornecer a senha por stdin, o que é possível em ssh
usando o sinalizador -S
. Estou ciente de que posso enviar opções adicionais para ssh
usando o -o
flag no comando ssh-copy-id
, mas não há exemplos de uso desse sinalizador na página man.
Então eu tentei passar a senha SSH para ssh-copy-id
através de stdin usando:
$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"
Mas tudo que eu obtenho é:
/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s
I'm trying to provide the password through stdin, which is possible on
ssh
by using the-S
flag.
Esta afirmação está errada. Eu realmente li esse sinalizador de sudo
man;
Onde você encontrou as informações sobre a opção -S
? Faz algo completamente diferente! Ele é usado para multiplexação e ControlPath.
O SSH não aceita senhas no stdin ever , portanto, você deve pré-instalar chaves autorizadas em sua implantação (de preferência) ou usar o script sshpass
ou expect
, conforme descrito em muitas outras perguntas .
Tags ssh pipe key-authentication