Chaves SSH
Gerencie chaves SSH para autenticação segura com provedores Git e acesso a servidores remotos.
Visão Geral
Chaves SSH no sh0 servem a dois propósitos principais:
- Autenticação com provedor Git: Clonar repositórios privados do GitHub, GitLab, Bitbucket ou qualquer servidor Git que suporte SSH.
- Acesso a servidor remoto: Conectar a nós remotos em uma configuração multi-servidor via túneis SSH.
O sh0 armazena chaves privadas SSH criptografadas em repouso usando AES-256-GCM. As chaves são descriptografadas apenas em memória quando necessárias para autenticação.
Gerando um Par de Chaves SSH
Se você não tem um par de chaves SSH, gere um usando o seguinte comando. O sh0 suporta chaves Ed25519 (recomendado) e RSA.
Ed25519 (recomendado):
ssh-keygen -t ed25519 -C "sh0-deploy-key" -f ~/.ssh/sh0_deployRSA (4096 bits):
ssh-keygen -t rsa -b 4096 -C "sh0-deploy-key" -f ~/.ssh/sh0_deployIsso cria dois arquivos:
~/.ssh/sh0_deploy-- a chave privada (mantenha em segredo)~/.ssh/sh0_deploy.pub-- a chave pública (segura para compartilhar)
.pub) deve ser adicionada aos provedores Git. A chave privada é enviada ao sh0 para que ele possa se autenticar em seu nome.Adicionando Chaves SSH ao sh0
Você pode adicionar chaves SSH pelo painel ou pela API.
Via Painel:
- Navegue até Configurações → Chaves SSH.
- Clique em Adicionar Chave SSH.
- Insira um nome descritivo (ex.: "Chave de Deploy GitHub").
- Cole o conteúdo do seu arquivo de chave privada.
- Clique em Salvar.
Via API:
curl -X POST https://your-server:9000/api/ssh-keys \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "GitHub Deploy Key",
"private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\\n...\\n-----END OPENSSH PRIVATE KEY-----"
}'Chaves SSH para Provedores Git
Para implantar a partir de repositórios privados, o sh0 precisa de uma chave SSH com acesso de leitura ao repositório. Veja como configurar para provedores comuns:
GitHub:
- Vá ao seu repositório → Settings → Deploy Keys.
- Clique em Add deploy key.
- Cole o conteúdo da sua chave pública (arquivo
.pub). - Deixe "Allow write access" desmarcado (o sh0 precisa apenas de acesso de leitura).
GitLab:
- Vá ao seu projeto → Settings → Repository → Deploy Keys.
- Adicione uma nova deploy key com sua chave pública.
- Conceda acesso somente leitura.
Bitbucket:
- Vá ao seu repositório → Configurações → Chaves de acesso.
- Clique em Adicionar chave e cole sua chave pública.
Chaves SSH para Acesso ao Servidor
Ao adicionar nós remotos a uma configuração multi-servidor, o sh0 usa chaves SSH para estabelecer túneis seguros. A chave deve estar autorizada no servidor remoto.
- Adicione a chave SSH ao sh0 (conforme descrito acima).
- Copie a chave pública para o arquivo
~/.ssh/authorized_keysdo servidor remoto:
ssh-copy-id -i ~/.ssh/sh0_deploy.pub deploy@remote-serverAo adicionar o nó no sh0, selecione esta chave SSH para autenticação. O sh0 a usará para estabelecer o túnel SSH para o daemon Docker remoto.
Impressões Digitais de Chave
Cada chave SSH tem uma impressão digital única que você pode usar para verificar sua identidade. O sh0 exibe a impressão digital SHA-256 para cada chave armazenada.
# View the fingerprint of a local key file
ssh-keygen -lf ~/.ssh/sh0_deploy.pubCompare esta impressão digital com a mostrada no painel do sh0 para verificar se você enviou a chave correta.
Gerenciando Múltiplas Chaves
O painel de Chaves SSH lista todas as chaves armazenadas no sh0. Para cada chave, você pode ver:
- Nome e impressão digital da chave
- Tipo de chave (Ed25519, RSA)
- Data de adição
- Quais aplicações ou nós usam a chave
Removendo Chaves
Para remover uma chave SSH do sh0:
- Navegue até Configurações → Chaves SSH.
- Clique no ícone de excluir ao lado da chave que deseja remover.
- Confirme a exclusão.
curl -X DELETE https://your-server:9000/api/ssh-keys/key_abc123 \
-H "Authorization: Bearer YOUR_TOKEN"