Estou tentando copiar .ssh / id_rsa.pub do nosso servidor central para vários servidores. Eu tenho o seguinte script que eu costumo usar para enviar alterações para os diferentes servidores.
#!/bin/bash
for ip in $(<IPs); do
# Tell the remote server to start bash, but since its
# standard input is not a TTY it will start bash in
# noninteractive mode.
ssh -q "$ip" bash <<-'EOF'
EOF
done
Mas, nesse caso, preciso catar a chave pública no servidor local e adicioná-la a vários servidores. Existe uma maneira de usar o script de documento aqui acima para executar o seguinte.
cat .ssh/id_rsa.pub |ssh tony@0.0.0.0 'cat > .ssh/authorized_keys'
shell-script
ssh
user67186
fonte
fonte
Respostas:
Com esse loop simples, você pode automatizá-lo e se espalhar para todos os servidores remotos.
fonte
Aqui está o meu script simples para copiar o ssh-keygen para vários servidores sem pedir senha sempre.
fonte
A resposta aceita não funcionará se for necessário colocar a chave pública de outra pessoa em várias máquinas. Então, eu vim com a seguinte solução:
cat add-vassal-tc-agents.sh
Esse script adiciona a nova chave aos usuários na lista de máquinas, desde que o ambiente em que é executado tenha acesso.
Exemplo de
tc-agents-list.txt
:fonte
Para copiar sua chave pública, você tem algo embutido no próprio openssh. Então, em vez de
cat
essh
use isto: -fonte
Você pode fazer isso com uma lista simples de servidores while e loop while, como esta:
Ter a lista dentro do script elimina arquivos de dados separados que podem ser extraviados.
fonte
ssh-copy-id
já foi sugerido em algumas outras respostas.Supondo que você tenha um arquivo com a lista de IPs dos servidores, nomeie SERVIDOR e apenas os endereços IP dos servidores estejam definidos.
Esse loop for também funcionará.
fonte