
Preciso ser capaz de configurar um ssh
sistema de chaves sem interação. Não me importo se pacotes precisam ser instalados ou senhas em texto não criptografado.
Como posso fazer um sistema que configure um ssh
sistema de chaves, permitindo que a máquina A entre ssh
na máquina B e vice-versa usando chaves ssh, sem interação?
Responder1
Aqui está o código simples (copiar e colar NÃO FUNCIONARÁ!!! Mude coisas como my-username
emy-ip
). Execute em ambos os hosts:
#!/bin/bash
apt-get -y install sshpass
ssh-keygen -p -N "" -f ~/.ssh/id_rsa
sshpass -p 'my_password' ssh-copy-id my_username@my_host_2
Substitua my_host_2
pela my_host_1
máquina 2.
Explicação:
A primeira linha #!/bin/bash
é chamada de shebang. OlharaquiPara maiores informações.
A segunda linha é instalada sshpass
sem interação.
A terceira linha é usada ssh-keygen
para criar uma chave. -q
significa silêncio; não é pedir tanto. -N ""
significa que não há senha e -f
significa salvá-la no local padrão.
A última linha copia a chave real usando ssh-copy-id
e sshpass
. Você não pode echo
passar a senha por meio de stdin
, então usamos sshpass
qual é o equivalente mais próximo. -p
é a senha a ser usada. O argumento ssh-copy-id
é o nome de usuário e o host para onde copiar a chave.