Idioma
Categoria
Pesquisar

Como subir um novo projeto no GitHub usando Linux e SSH sem senha

Inicie o Git na maquina local, mude o nome do branch padrão, crie uma chave SSH e adicione ao GitHub, suba o projeto e aprenda a sincronizar o repositório local com o remoto

Em Terminal Por Rudi Drusian Lange
Publicado em
Última atualização

Antes de começar

Crie uma conta no Github e adicione um novo repositório. Esta parte é relativamente simples e conta com ajuda do próprio Github durante o processo.

Ambiente de instalação

Neste artigo as configurações foram realizadas utilizando o Linux Slackware 15.0 e com as ferramentas nativas Git versão 2.39.4 e OpenSSH 9.3p2. Os comandos usados neste material devem funcionar em qualquer outra distribuição Linux com o Git e SSH instalados.

Começando

Assumindo um projeto chamado telazul, primeiro iniciemos o Git neste diretório:

Shell

# Entra no diretório
cd telazul/  

# Inicia o Git
git init

# Adiciona todos os arquivos do diretório atual
git add .  

# Salve permanentemente
git commit -m "Commit inicial: adicionando arquivos"

# Renomeia o branch principal de master para main
git branch -m master main 

Os comandos acima são usados para iniciar o Git no diretório do projeto, adicionar a arvore de arquivos e salvar seus estados atuais com uma mensagem informativa.

Esses passos são feitos para usar o Git, independente se o projeto será usado no GitHub ou não. Lembre-se que o Git funciona de forma distribuída, significando que não é necessário ter um servidor central para usá-lo ou mesmo uma conexão de internet.

No final renomeamos o branch local principal de master para main com a intenção de manter a compatibilidade com o GitHub, que usa o nome main no branch principal. Sem esta alteração, ao fazermos o upload o projeto seria adicionado a um branch alternativo chamado master.

Configurando acesso SSH ao GitHub

O projeto será transferido usando SSH que é uma forma segura e prática de transferir arquivos pela internet.

Vamos criar as chaves que serão usadas como credenciais para fazer o login seguro no GitHub sem necessidade de digitar uma senha.

# Cria as chaves usando o algoritmo ed25519
ssh-keygen -t ed25519

Quando perguntado pressione para manter localização padrão das chaves e para usar uma senha em branco. Se você já possui chaves criadas compatíveis com o GitHub não precisa criar uma nova.

Entre computadores usando Linux a chave pública pode ser transferida usando o comando ssh-copy-id. No GitHub é preciso copiar e colar a chave na interface gráfica da plataforma. Copie o texto da chave recém criada, lembre-se de usar o arquivo terminado em .pub, que contém a chave pública:

cat /home/seu-usuário/.ssh/id_ed25519.pub

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEDbDtQNhBvGd292FgKDRgqhiXGiLHo32ZYXCSS017d5 seu-usuário@nome-do-host

Copie a linha iniciada com ssh-ed25519, acesse o GitHub, clique no menu com seu avatar , depois Settings > SSH and GPG Keys.

Você também pode usar o link direto: https://github.com/settings/keys.

Clique em New SSH Key, adicione um título ao campo Title, cole a chave pública no campo Key e clique em Add SSH Key.

Na configuração deverá aparecer algo como:

github-ssh-authentication-keys

Subindo o projeto no GitHub

O comando abaixo adiciona o apelido origin ao repositório remoto com o mesmo conteúdo do projeto. É possível adicionar múltiplos repositórios remotos e origin é o nome padrão utilizado pelo Git.

git remote add origin git@github.com:seu-usuário/seu-repositório.git

Lembre-se executar o comando acima dentro da pasta do seu projeto e de alterar os valores de seu-usuário e seu-repositório com as suas informações.

Finalmente, o próximo passo é fazer uma cópia do projeto para o repositório remoto em GitHub:

git push -u -f origin main
  • -u (ou --set-upstream) define origin como referência. Isso permit usar os comandos git push e git pull sem a necessidade de informar o repositório remoto.
  • -f (ou --force) irá sobrescrever tudo no repositório remoto, usado quando o comando se recusa a concluir a atualização.

Atenção! Usar o parâmetro -f irá apagar todos os arquivos do repositório no GitHub. Use ao iniciar um novo projeto quando o repositório possuir os arquivos padrões como LICENSE e README e não aceitar o comando push.

Atualizando o projeto

Entre no site GitHub e crie o arquivo README com algum conteúdo. Para sincronizar essas alterações no repositório remoto com o local, entre na pasta do projeto e execute:

git pull

Como citado anteriormente, ao subir o projeto com o comando git push usando o parâmetro -u, o repositório em GitHub será usado como referência e não será necessário indicar o nome origin no comando. A atualização será aplicada ao branch local corrente.

Verifique que o arquivo README criado remotamente agora esta presente na pasta local do projeto. Edite o arquivo no repositório local, adicione uma nova linha em README e depois:

git commit -a -m "update readme"

git push

O parâmetro -a prepara automaticamente todos os arquivos que foram modificados ou apagados, porém novos arquivos serão ignorados. Use git add para novos arquivos. O -m indica a mensagem de commit. O git push atualiza o repositório remoto em GitHub com as alterações recentes na pasta local do projeto.

Referências