summaryrefslogtreecommitdiff
path: root/keys.md
blob: 7f0bdc87cb241b38a6b5ff7270c51c0046f2ff83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
[[!toc levels=4]]

Reposit�rio de chaves
=====================

Configura��o
------------

A maior parte dos procedimentos a seguir depende do aplicativo
[keyringer](http://git.fluxo.info/?p=keyringer.git;a=summary), da [Hydra
Suite](http://git.fluxo.info/?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/$DOMAIN $DOMAIN

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

    keyringer $HYDRA genpair ssl ssl/$DOMAIN $DOMAIN

Para a chaves e requisi��es CaCert, use

    keyringer $HYDRA genpair ssl-cacert ssl/$DOMAIN $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"
    ssh-keygen -t ed25519     -f ~/.ssh/id_ed25519 -C "seu@email"

Esse tipo de 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 -l 4096                      # 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.fluxo.info/?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://sarava.fluxo.info/Ajuda/ProtegendoConteudo).

Exporta��o de assinaturas locais
================================

    gpg --armor --export-options export-local-sigs --export KEYID

For�ando entrada de senhas via console no GnuPG
===============================================

    DISPLAY="" gpg <opcoes>

Mudando senhas de chaves
========================

    ssh-keygen -p -f ~/.ssh/id_rsa
    gpg --edit-key <ID> edit-key passwd

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