[[!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

Proceda ent�o com a [configura��o do ambiente de trabalho administrativo](/install).

Inicializando um reposit�rio
----------------------------
    
    # Inicializando
    keyringer $HYDRA init $FOLDER/conf/keyring

Gerando chaves https
--------------------

Gerar chaves e certificados SSL auto-assinados � simples:
    
    # Gerando chaves para https
    keyringer $HYDRA genpair ssl-self ssl/cert $DOMAIN

Caso voc� queira gerar apenas a chave e a requisi��o de certifica��o (CSR), use

    keyringer $HYDRA genpair ssl ssl/cert $DOMAIN

Para a chaves e requisi��es CaCert, use

    keyringer $HYDRA 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 $HYDRA newkeys

Submetendo mudan�as
-------------------
    
    # Submetendo
    keyringer $HYDRA git remote add origin giolite@admin.$DOMAIN:keyring.git
    keyringer $HYDRA git push origin master

Importa��o de chaves GPG
------------------------

Importando chaves nos seus respectivos nodos:

    hydra $HYDRA import-key 

Chaves pessoais
===============

Para gerar uma chave SSH pessoal, use um comando do tipo

    ssh-keygen -t rsa -b 4096 -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

Para obter um fingerprint salvo no seu `~/.ssh/known_hosts` pessoal, use

    ssh-keygen -l -F  servidor.exemplo.org        -f ~/.ssh/known_hosts
    ssh-keygen -l -F [servidor.exemplo.org]:porta -f ~/.ssh/known_hosts

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.

Al�m dos [usos j� documentados](http://web.monkeysphere.info/doc/), o monkeysphere pode ser utilizado tamb�m para autentica��o em sistemas que n�o possuem tal suporte:

    monkeysphere gen-subkey                              # caso voce ainda nao tenha uma chave
    mkdir -m 700 ~/.monkeysphere
    echo "SEU-ID" >> ~/.monkeysphere/authorized_user_ids # exemplo: "Seu Nome <seu-email@example.org>"
    touch ~/.ssh/id_rsa_monkeysphere.pub
    chmod 600 ~/.ssh/id_rsa_monkeysphere.pub
    MONKEYSPHERE_AUTHORIZED_KEYS=$HOME/.ssh/id_rsa_monkeysphere.pub monkeysphere update-authorized_keys

Agora, basta fornecer a chave localizada em `~/.ssh/id_rsa_monkeysphere.pub` para autentica��o :)

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 seguinte comando dispon�vel no pacote [whois do Debian](https://packages.debian.org/stable/whois):

    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-sigs --export KEYID

Chave OpenPGP de Coletivo
=========================

Vide [Chave OpenPGP de Coletivo](role).

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).