|
From: | felipe diefenbach |
Subject: | Re: [shell-script] Shell usando ssh com chave privada embebida no script |
Date: | Thu, 30 Oct 2014 13:47:31 +0000 (UTC) |
Boa tarde lista.
Estou tentando fazer uma ferramenta para automatizar a conexão através do ssh.
Já estou usando chaves pub/priv corretamente.
Porém me deparei com um problema.
Ao criar o shell script de conexão preciso usar o comando ssh que usa a opção -i para receber um arquivo de chave (like ec2 aws).
Infelizmente o comando só suporta no parâmetro -i como entrada um arquivo. E eu não poderia disponibilizar em disco o arquivo de chave privada descriptografado.
A ideia inicial era criar um shell e compilá-lo, já com a chave embebida dentro do script, mas devido a estas limitações do comando ssh parece que terei que tomar outros caminhos.
Vasculhando na internet no site do ssh existe uma discussão a respeito do assunto, onde um camarada havia feito uma modificação no código c do ssh para aceitar como opção a chave privada através de uma variável ao invés de um arquivo. De qualquer forma não consegui encontrar os patchs para fazer o mesmo.
Cheguei o mais próximo dos resultados que busco com o seguinte código:
#!/bin/bash
ssh -i /dev/stdin -n -T -p 22 -l someuser 111.222.333.444 <<EOF
-----BEGIN RSA PRIVATE KEY-----
......
-----END RSA PRIVATE KEY-----
EOF
Mas o problema com este código é que ele faz a conexão e em seguida desconecta, como se eu estivesse concatenando um comando ao fim do comando ssh.
Tentei algumas outras formas de criptografia com o ccrypt e o gpg. Porem todos gerão um arquivo novo com a chave descriptografada. Permitindo que em algum momento qualquer um possa ler a chave privada.
Não tenho muita habilidade em lidar com o stdin e o stdout, por isso estou solicitando ajuda a lista. Talvez exista uma maneira de manter a conexão após efetuar o comando.
[Prev in Thread] | Current Thread | [Next in Thread] |