-
1. Começando
- 1.1 Sobre Controle de Versão
- 1.2 Uma Breve História do Git
- 1.3 O Básico do Git
- 1.4 A Linha de Comando
- 1.5 Instalando o Git
- 1.6 Configuração Inicial do Git
- 1.7 Pedindo Ajuda
- 1.8 Sumário
-
2. Fundamentos de Git
-
3. Branches no Git
-
4. Git no servidor
- 4.1 Os Protocolos
- 4.2 Getting Git on a Server
- 4.3 Gerando Sua Chave Pública SSH
- 4.4 Setting Up the Server
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Third Party Hosted Options
- 4.10 Sumário
-
5. Distributed Git
-
6. GitHub
- 6.1 Configurando uma conta
- 6.2 Contribuindo em um projeto
- 6.3 Maintaining a Project
- 6.4 Managing an organization
- 6.5 Scripting GitHub
- 6.6 Summary
-
7. Git Tools
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Summary
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Funcionamento Interno do Git
- 10.1 Encanamento e Porcelana
- 10.2 Objetos do Git
- 10.3 Referências do Git
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Variáveis de ambiente
- 10.9 Sumário
-
A1. Appendix A: Git em Outros Ambientes
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Resumo
-
A2. Appendix B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.3 Git no servidor - Gerando Sua Chave Pública SSH
Gerando Sua Chave Pública SSH
Dito isto, muitos servidores de Git efetuam autenticação utilizando chaves públicas SSH.
Para prover uma chave pública, cada usuário do seu sistema deve gerar uma chave se ainda não possui uma.
Este processo é similar em todos os sistemas operacionais.
Primeiro, você deve verificar e se certificar de que ainda não tem uma chave.
Por padrão, as chaves de SSH de um determinado usuário são armazenadas no diretório ~/.ssh
daquele usuário.
Você pode facilmente verificar se não já possui uma chave indo neste diretório e listando seu conteúdo:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
O que você precisa encontrar é um par de arquivos, um com o nome parecido com id_dsa
ou id_rsa
, e o outro de nome correspondente, porém com a extensão .pub
no final.
O arquivo de extensão .pub
é sua chave pública, e o outro arquivo é sua chave privada.
Caso você não tenha estes arquivos (ou sequer um diretório .ssh
), você pode criá-los rodando um programa chamado ssh-keygen
, que vem incluído no pacote SSH em sistemas Linux/Mac, e também no Git para Windows:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
Primeiro, o programa confirma onde você deseja salvar a chave (.ssh/id_rsa
), e então pede duas vezes por uma frase secreta, a qual você pode deixar vazia se não deseja digitar uma senha quando utiliza as chaves.
Entretanto, se você utilizar uma senha, lembre-se de adicionar a opção -o
; ela salva a chave privada em um formato que é mais resistente a ataques de força bruta do que o formato padrão.
Você também pode utilizar a ferramenta ssh-agent
para não ter de entrar com sua senha toda vez.
Agora, cada usuário que tenha feito os passos acima deve enviar sua chave pública a você ou a quem estiver administrando o servidor de Git (assumindo que um servidor SSH que requeira chaves públicas esteja sendo utilizado).
Tudo que o administrador precisa fazer é copiar o conteúdo do arquivo .pub
e enviá-lo por e-mail.
A chave tem mais ou menos esta aparência:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
Para ver um tutorial mais detalhado sobre a criação de chaves SSH em diversos sistemas operacionais, veja o guia do GitHub sobre chaves SSH em https://docs.github.com/pt/authentication/connecting-to-github-with-ssh.