CLI para configurar chaves SSH e preparar o ambiente de desenvolvimento para uso com GitHub.
O gssh simplifica a configuração de chaves SSH para desenvolvedores que precisam autenticar no GitHub. Com um único comando, você gera a chave, adiciona ao ssh-agent e recebe instruções para cadastrá-la no GitHub.
Características:
- Fluxo guiado com steps e feedback visual
- Cópia automática da chave para o clipboard
- Suporte a Linux e macOS (amd64 e arm64)
- Interface com cores e animações no terminal
Detecta automaticamente Linux/macOS e arquitetura (amd64/arm64):
curl -fsSL https://raw.githubusercontent.com/ovitorvalente/gssh/main/install.sh | bashOpções do script:
| Opção | Descrição |
|---|---|
--local |
Instala em ~/.local/bin (padrão, sem sudo) |
--system |
Instala em /usr/local/bin (requer sudo) |
--version |
Versão específica (ex: --version v1.0.0) |
--help |
Exibe ajuda |
Exemplos:
curl -fsSL ... | bash # instala em ~/.local/bin
curl -fsSL ... | bash -s -- --system # instala em /usr/local/binBaixe o binário para sua plataforma na página de releases:
Linux (amd64):
curl -fsSL https://github.com/ovitorvalente/gssh/releases/latest/download/gssh-linux-amd64 -o gssh
chmod +x gssh
sudo mv gssh /usr/local/bin/macOS (Apple Silicon):
curl -fsSL https://github.com/ovitorvalente/gssh/releases/latest/download/gssh-darwin-arm64 -o gssh
chmod +x gssh
sudo mv gssh /usr/local/bin/Requer Go instalado:
go install github.com/ovitorvalente/gssh/cmd/gssh@latestCertifique-se de que
$HOME/go/binesteja no seuPATH.
gssh run # configura SSH e exibe instruções
gssh help # documentação
gssh version # versão, commit e data de buildO comando gssh run irá:
- Verificar se existe chave SSH em
~/.ssh/id_ed25519 - Gerar nova chave (ed25519) caso não exista
- Adicionar a chave ao ssh-agent (quando disponível)
- Copiar a chave pública para o clipboard (opcional)
- Exibir a chave e instruções para adicioná-la no GitHub
Flag --no-copy: evita copiar a chave para o clipboard.
- Linux ou macOS
ssh-keygenessh-add(incluídos no OpenSSH)
git clone https://github.com/ovitorvalente/gssh.git
cd gssh
make build # build com versão dev
make test # executa testes
make install # instala em $GOPATH/bingssh/
├── cmd/gssh/ # ponto de entrada
├── internal/ # lógica interna
│ ├── adapter/ # implementações (arquivo, ssh)
│ ├── config/ # configurações
│ ├── domain/ # entidades
│ ├── port/ # interfaces
│ ├── usecase/ # casos de uso
│ └── version/ # versão injetada no build
├── pkg/
├── clipboard/ # cópia para clipboard
└── ui/ # interface de linha de comando
- Crie uma tag:
git tag v1.0.0 - Faça push:
git push origin v1.0.0 - O GitHub Actions builda e publica automaticamente binários para Linux, macOS e Windows
Contribuições são bem-vindas.
- Faça um fork do repositório
- Crie uma branch para sua feature:
git checkout -b feat/minha-feature - Faça commit das mudanças seguindo Conventional Commits:
feat:nova funcionalidadefix:correção de bugdocs:documentaçãorefactor:refatoração
- Faça push para a branch:
git push origin feat/minha-feature - Abra um Pull Request descrevendo as alterações
- Código em inglês (variáveis, funções, comentários)
- Mensagens ao usuário em português
- Máximo 4 arquivos por commit (divida em commits atômicos)
- Execute os testes antes de abrir o PR:
go test ./...
Abra uma issue com:
- Descrição do problema
- Passos para reproduzir
- Sistema operacional e versão
- Saída de
gssh version
MIT