sexta-feira, 22 de junho de 2018

Configurar servidor para utilizar o git via ssh no GNU/Linux

Gerar o arquivo a seguir: sshgit.sh (que se encontra abaixo).

Alterar o nome da variável 'novousuario' para o nome do usuário que deseja criar.

Depois executar o arquivo sshgit.sh como root.
 
========================================
 
#!/bin/bash
# necessário para executar o bash

usuario=novousuario
# cria uma variável com o nome novousuario 

useradd $usuario -U -m
# Cria o usuario com o nome dado na variável
# -U : cria um grupo com o mesmo nome do usuario
# -m : cria o diretório pessoal do usuario /home/$usuario)
 
sed -i 's/AllowUsers /AllowUsers '$usuario' /' /etc/ssh/sshd_config
# Permite o acesso ssh ao usuario criado
# adiciona o nome do novo usuário no campo AllowUsers do arquivo sshd_config
 
service ssh restart
# reinicia o serviço ssh

mkdir -p /home/$usuario/.ssh
touch /home/$usuario/.ssh/authorized_keys
chmod -R go= /home/$usuario/.ssh
chown -R $usuario:$usuario /home/$usuario/.ssh
# Cria os arquivos/diretórios necessários ao acesso SSH e fornece permissões

mkdir /home/$usuario/$usuario.git
cd /home/$usuario/$usuario.git/
git init --bare
chown -R $usuario:$usuario /home/$usuario/$usuario.git
# Cria o repositório do Git e fornece permissões
 
========================================
 
Colaboração de:

quinta-feira, 3 de maio de 2018

Como gerar chave SSH no Windows

Como gerar chave SSH no Windows

==================================

Baixe o GIT através do site : https://git-scm.com/download/win

Verifique qual a instalação é a correta para seu computador (32 ou 64 bits).

Instale.

==================================

 Abra o Git Bash:




==================================

Digite o seguinte comando:

ssh-keygen -t rsa -C "seuemail@xxxx.com.br"

Dê Enter sem preencher nada, deixe tudo em branco.


Neste Momento a chave é gerada : c/Users/Hermon/.ssh/id_rsa.pub

Este arquivo (id_rsa.pub) é que possui a chave SSH

==================================

Após isso configure a conta:

$ git config --global user.name "SeuNome"

$ git config --global user.email "SeuEMail"


==================================

Para começar a trabalhar...

Agora faça o seguinte:
- crie uma pasta vazia, com o nome git, onde irá ficar o material que irá ser trabalhado;
- entre nessa pasta git, clique com o botão direito do mouse, e peça para abrir o bash do git;
- o bash irá abrir com no endereço dessa pasta git que criou;

Depois clone o repositório:

$ git clone endereço

Em seguida ( copie seu material que está trabalhando, todos arquivo ) dentro dessa pasta que foi criada.
E envie:

$ git add .

$ git commit -m "mensagem"

$ git push origin master

Toda vez que for trabalhar dê o seguinte comando, antes de começar a trabalhar, para poder puxar do servidor a versão mais nova:

$ git pull origin master

 Depois que terminar de trabalhar envie ao servidor:

$ git add .

$ git commit -m "mensagem"

$ git push origin master

Para acompanhar o que está acontecendo, pode-se utilizar dois comandos (gitk e git status), que podem ser digitados a qualquer momento:

$ gitk

$ git status

==================================

Créditos para Jaqueline: jaqueline.nmoura@yahoo.com.br

domingo, 22 de abril de 2018

Como criar um servidor ssh para trabalhar com git

Como criar um servidor ssh para trabalhar com git

=========================================================

O primeiro passo é instalar o ssh no cliente e no servidor:

# apt install openssh-server
# apt install openssh-client
# apt install ssh

=========================================================

é preciso também ter o git instalado:

# apt install git

e configurar o nome e e-mail

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

=========================================================

Servidor

Iniciando a configuração na máquina que será o servidor

Criar um usuário chamado git que será o proprietário dos repositórios:
# adduser git

Dar as devidas permissões:
# chown -R git:users /home/git

Configurar o ssh do servidor:
# gedit /etc/ssh/sshd_config

Nesse arquivo existe uma instrução chamada AllowUsers.
Ele define quais usuários estão permitidos a se logar através do ssh.
Adicionar o usuário git a essa configuração.
Adiconar a seguinte linha à esse arquivo:

AllowUsers root git

Reiniciar o serviço no sistema operacional para que as modificações tenham efeito.

# /etc/init.d/ssh restart

Criar uma pasta e um arquivo dentro do diretório raiz do usuário git para que o ssh possa controlar esse acesso sem senha.
Esses arquivos controlarão as chaves dos usuário autorizados a acessar e modificar os repositórios, chaves públicas e privadas.

Criar o diretório .ssh para o usuário git
# mkdir -p /home/git/.ssh/

Dar a permissão:
# chown -R git:users /home/git/.ssh
# chmod 700 /home/git/.ssh

Criar o arquivo authorized_keys
# touch /home/git/.ssh/authorized_keys

Dar a permissão:
# chown -R git:users /home/git/.ssh/authorized_keys
# sudo chmod 600 /home/git/.ssh/authorized_keys

Para conseguir copiar a chave para a pasta git, do cliente para o servidor, rodei o seguinte comando no servidor:
comando digitado no servidor:
# chown git /home/git/
Depois desse comando consegui copiar a chave pública para o servidor remotamente.

=========================================================

Cliente

No computador do cliente

Supondo que o nome do usuário do computador cliente seja:
usuario1

Supondo que o ip do servidor seja:
xxx.xxx.xxx.xxx

Antes de criar as chaves, conferir se o servidor está corretamente configurado com o ssh.
Logar no servidor com o usuário git:
$ ssh git@xxx.xxx.xxx.xxx

Criar chaves pública e privada:
$ ssh-keygen

Esse comando irá gerar dois arquivo dentro do diretório /home/usuario1/.ssh
Por padrão, esses arquivos irão chamar id_rsa.pub e id_rsa

Dar permissão para não precisar de digitar a senha

# chmod 600 .ssh/id_rsa
# chmod 600 .ssh/id_rsa.pub
$ chmod 600 .ssh/id_rsa
$ chmod 600 .ssh/id_rsa.pub


Copiar o conteúdo do arquivo id_rsa.pub para o servidor e colocá-lo no final do arquivo /home/git/.ssh/authorized_keys
Copiar a chave pública para o servidor remoto
$ scp /home/usuario1/.ssh/id_rsa.pub git@xxx.xxx.xxx.xxx:/home/git

=========================================================

Servidor

Inserir a chave do arquivo id_rsa.pub no final do arquivo authorized_keys
Comando digitado no servidor:
$ cat /home/git/id_rsa.pub >> /home/git/.ssh/authorized_keys

Remover o arquivo id_rsa.pub do servidor
$ rm /home/git/id_rsa.pub

obs.:
se estiver com o arquivo em um pendrive, no servidor, pode copiar dessa forma:
# cat /media/usuario2/pendrive/id_rsa.pub >> /home/git/.ssh/authorized_keys

Para começar a utilizar o git, deve-se criar um repositório no servidor com a opção --bare do git.
# cd /home/git/
# mkdir teste.git
# cd teste.git
# git init --bare

Dar as permissões:
# chown -R git:users /home/git/teste.git

=========================================================

No cliente

Criar um diretório novo chamado teste e inicializar um repositório git dentro dele.

Criar diretório para o novo repositório:
$ mkdir teste

Inicializar o repositório:
$ cd teste
$ git init .

Dizer para esse repositório git local qual tem como remote o repositório remoto.
Para isso utilizamos o comando git passando a URI do repositório no padrão ssh:

Adicionando um novo controlador remoto
$ git remote add origin git@xxx.xxx.xxx.xxx:/home/git/teste.git

Testando criar um arquivo, fazer commit e depois push para o repositório remoto:

Criar um novo arquivo
$ touch equilibrio.py

Adiconando o novo arquivo por commit:
$ git add equilibrio.py
$ git commit -m "Primeiro commit"

Enviando para o servidor remoto:
$ git push origin master

Com isso o git se conecta através do ssh e fez as devidas modificações no repositório remoto.
Outros usuário ao executar git pull desse mesmo repositório receberão suas modificações.
$ git pull origin master

Se desejar clonar o projeto, pode fazer assim:
$ git clone ssh://git@xxx.xxx.xxx.xxx/home/git/teste.git

=========================================================

Referências:

https://blog.pantuza.com/tutoriais/criando-um-servidor-git

https://www.howtogeek.com/168119/fixing-warning-unprotected-private-key-file-on-linux/