[[!toc levels=4]] Repositório de chaves ===================== Configuração ------------ A maior parte dos procedimentos a seguir depende do aplicativo [keyringer](http://git.sarava.org/?p=keyringer.git;a=summary), da [Hydra Suite](http://git.sarava.org/?p=hydra.git;a=summary) e de uma configuração do tipo # Configuracao project="exemplo" domain="exemplo.org" admin="nodo_admin" admin_port="porta_ssh" base="$HOME/grupos/$project/conf" Inicializando um repositório ---------------------------- # Inicializando keyringer $project init $base/keyring Gerando chaves https -------------------- Gerar chaves e certificados SSL auto-assinados é simples: # Gerando chaves para https keyringer $project genpair ssl-self ssl/cert $domain Caso você queira gerar apenas a chave e a requisição de certificação (CSR), use keyringer $project genpair ssl ssl/cert $domain Para a chaves e requisições CaCert, use keyringer $project genpair ssl-cacert ssl/cert $domain Gerando chaves para novos nodos ------------------------------- # Gerando chaves ssh e gpg para novos nodos # A importacao das chaves gpg nos nodos deve ser feita manualmente hydra $project newkeys Submetendo mudanças ------------------- # Submetendo keyringer $project git remote add origin ssh://gitosis@$admin.$domain:$admin_port/keyring.git keyringer $project git push origin master Importação de chaves GPG ------------------------ Importando chaves nos seus respectivos nodos: hydra $project import-key Chaves pessoais =============== Para gerar uma chave SSH pessoal, use um comando do tipo ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "seu@email" Esse comando irá gerar uma **chave privada** em `~/.ssh/id_rsa` e uma respectiva **chave pública** em `~/.ssh/id_rsa.pub`. Se você já possui uma chave em `~/.ssh/id_rsa` e quiser mantê-la, escolha outro nome para a nova chave, como por exemplo `~/.ssh/id_rsa_aplicacao`. Senhas ------ Exemplo de geração de senhas usando o [pwgen](http://packages.debian.org/lenny/pwgen): pwgen -s -y 25 Atenção: muitos programas e configurações podem não funcionar por conta do uso de caracteres especiais nas senhas. Assim, recomenda-se evitar alguns caracteres especiais -- por exemplo delimitadores de campo -- quando for o caso e/ou testar a senha após a sua escolha. Impressões digitais =================== Chaves SSL ---------- Chaves SSL podem ter seu fingerprint determinado através usando o [OpenSSL em linha de comando](http://www.madboa.com/geek/openssl), com linhas do tipo openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint -md5 Chaves públicas SSH ------------------- O seguinte comando retorna todas as fingerprints dos arquivos de chave pública ssh terminados em `.pub` no diretório `/etc/ssh/`: hydractl ssh-finger Monkeysphere ============ O [monkeysphere](http://web.monkeysphere.info) é um programa que permite a verificação de hosts SSH e usuários/as através da Teia de Confiabilidade do OpenPGP. Com ele, o gerenciamento de fingerprints fica mais fácil e evita que páginas como esta centralizem informações que possam se desatualizar. Hashes ====== Hashes são úteis para o armazenamento de senhas de usuário. São usados por exemplo no `shadow(5)`. Para gerar um hash compatível com o shadow (por exemplo para gestão via [puppet-user](http://git.sarava.org/?p=puppet-user.git;a=summary)), utilize o comando mkpasswd -m sha-256 Hashes para `htpasswd` são descritos [aqui](http://wiki.sarava.org/Ajuda/ProtegendoConteudo). Exportação de assinaturas locais ================================ gpg --armor --export-options export-local --export KEYID Referências =========== * [Using ssh-agent with ssh](http://mah.everybody.org/docs/ssh). * [Using Rsync and SSH ](http://troy.jdmz.net/rsync/index.html). * [SSH and ssh-agent](http://www.securityfocus.com/infocus/1812).