criptografar chaves privadas para acesso ssh dropbear
Eu gostaria de usar dropbearcomo alternativa, ssh-server e -client mínimos. dropbearpermite o uso de private-public-keys para ssh-access, embora as chaves não sejam idênticas às usadas por opensshe dropbearconvertdevam ser convertidas usando o comando- (o que é fácil de fazer).
O problema que estou tendo é que dropbearnão oferece suporte nativo a chaves privadas criptografadas . Mas deixar as chaves ssh não criptografadas no meu laptop é algo que eu gostaria de evitar por princípio.
Portanto, minha pergunta: alguém tem boas idéias sobre como contornar esse problema e tem um método (script?) Que:
- descriptografa as chaves que uso para dropbear (por exemplo, usando
gnupg) e as carrega na memória, - passa-os para o
dbclient-binary (odropbear-client-application), e - inicia a conexão ssh
Além disso, gostaria de saber se existe uma alternativa para a sshopção -config (especialmente aquelas para Host) para dropbear (e, portanto, se é possível criar um arquivo de configuração específico de host para dropbear onde posso especificar, por exemplo, o IP- endereço, a porta e outros detalhes).
Respostas
Parece que dbclientestá inteiramente disposto a ler a chave privada de um pipe nomeado ou FIFO.
Assim, com a substituição de processo do bash, você pode escrever:
dbclient -i <(cat .ssh/id_dropbear) user@server
Portanto, se você tiver um GPG criptografado .ssh/id_dropbear.gpg, poderá escrevê-lo como:
dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server
E depois de inserir sua senha de descriptografia, dbclientefetue login usando sua chave privada criptografada por GPG. Então essa parte funciona bem.
O principal problema aqui é que, se você já armazenou .ssh/id_dropbearsem criptografia antes disso, ele pode ser recuperado forense. Para criptografar uma chave imediatamente dropbearconvert, você pode aplicar o mesmo princípio:
$ dropbearconvert openssh dropbear \
.ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'
Mas não parece ser muito útil na prática, já que dropbearconverttambém oferece suporte muito limitado para as chaves privadas criptografadas do OpenSSH. Para este exemplo eu tive que criar especialmente uma chave OpenSSH que dropbearconvertentende ...
Infelizmente, esse truque não parece funcionar para o dropbearkeycomando, que por algum motivo insiste em gravar em um arquivo temporário e renomeá-lo, evitando completamente o pipe.
Portanto, parece que você não tem escolha a não ser gerar a chave privada tmpfsprimeiro (como em /dev/shmou de um CD ao vivo) e criptografá-la a partir daí.