Envie a senha através do stdin em `ssh-copy-id`

11

Preciso automatizar algumas implantações de identidade, idealmente usando ssh-copy-id.

Estou tentando fornecer a senha através do stdin, o que é possível sshusando a -Sflag. Estou ciente de que posso enviar opções adicionais para sshusar o -osinalizador no ssh-copy-idcomando, no entanto, não há exemplos de uso desse sinalizador na página de manual.

Então, eu tentei passar a senha SSH ssh-copy-idatravés do stdin usando:

$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"

Mas tudo o que recebo é:

/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s

EDITAR:

Estou tentando fornecer a senha através do stdin, o que é possível sshusando a -Sflag.

Esta afirmação está errada. Na verdade, eu li essa bandeira do sudohomem;

2grit
fonte

Respostas:

15

Você pode tentar instalar o sshpass e alterar sua chamada para ssh-copy-id:

sshpass -p "$TMP_PASS" ssh-copy-id
dhag
fonte
lol, não no mac e quando brew installé tentada, recebo "Erro: nenhuma fórmula disponível com o nome" sshpass "Não adicionaremos sshpass porque facilita demais para usuários iniciantes do SSH arruinarem a segurança do SSH".
Tofutim
Há instruções para instalá-lo com o homebrew no osx aqui gist.github.com/arunoda/7790979#installing-with-homebrew Você só precisa executarbrew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
ewatt
2

Onde você encontrou as informações sobre a -Sopção? Faz algo completamente diferente! É usado para multiplexação e ControlPath.

SSH não vai aceitar senhas em stdin vez , então você deve pré-instalar chaves autorizadas na sua implantação (modo preferido) ou o uso sshpassou expectscript como descrito em muitas outras perguntas.

Jakuje
fonte
Droga, você está certo! Acabei de perceber que a -Sbandeira é de sudo: S
2grit
Se eu quiser instalar minhas chaves em 100 hosts, usando ssh-copy-id, tendo todos os hosts já com um nome de usuário e senha padrão, como evitar que o ssh-copy-id me pergunte sempre a mesma senha?
Realtebo 11/0818
Isso já foi respondido nas duas respostas - use sshpass se você precisar ou algum script esperado.
Jakuje 13/08/18