Main Contents

GIT, SSH e Windows

Por Marco Lopes em 2008

Há mais ou menos um mês atrás, quando comecei a escrever este artigo, estava pela primeira vez a utilizar o GIT num projecto onde também participaram utilizadores de MS Windows. Até há pouco tempo, a única forma de um utilizador de Windows aceder a um repositório GIT era utilizar a versão para cygwin. Isto, claro, não facilitava em nada a adopção do GIT já que a maioria dos utilizadores do Windows não têm conhecimentos suficientes para utilizar o cygwin e dos que têm, nem todos estão para o instalar só para poder correr o GIT.

Felizmente, agora existe o msysgit que corre em Windows nativamente, o que facilita um pouco a adopção do GIT em ambientes com utilizadores Windows. O msysgit é composto por várias aplicações, duas delas são o git-gui e a git-bash. A git-bash, tem muitos dos utilitários de Unix/Linux a que nos habituamos, como por exemplo o ls, grep, diff, ssh, scp, etc...,  e pode servir não só para gerir um repositório GIT mas também para qualquer outro fim que o utilizador necessite e onde possa aplicar alguma destas ferramentas.

Apesar disso, nem tudo são rosas. Nem todos os utilizadores têm capacidade para utilizar uma linha de comandos, como por exemplo a git-bash e o génio que fez o git-gui, esqueceu-se de incluir um interface para pedido da password para acesso a repositórios por ssh. Se em Linux ou Mac OS X por exemplo, isto não é tão problemático porque a password é pedida na shell à qual pertence o processo, no Windows, não havendo uma shell associada, não há forma de introduzir a password.

Uma solução para este problema, é permitir o acesso ssh sem password ao utilizador em questão a partir do computador onde acontece o problema. Para isso, geramos um par de chaves RSA que nos irá identificar:

ssh-keygen -t rsa

Tanto em Linux como em Mac OS X como em Windows, a chave fica guardada na sub-directoria .ssh dentro da directoria do utilizador. O passo seguinte, é copiar a chave pública para a máquina remota, para dentro da sub-directoria .ssh na home do nosso utilizador remoto. O ficheiro local chama-se id_rsa.pub e terá que ser copiado para a máquina remota com o nome authorized_keys2, por exemplo assim (em Windows, em vez do ~ penso terá que colocar o caminho para a directoria do utilizador):

scp ~/.ssh/id_rsa.pub remoteuser@remotemachine:~/.ssh/authorized_keys2

E pronto, deverá ser agora possível fazer ssh à máquina remota sem ter que introduzir a password. Caso esteja confirmado que tudo foi feito correctamente, mas o ssh continue a pedir a password, poderá ser devido a permissões erradas no servidor, a directoria .ssh deverá estar com permissões 700 e o ficheiro authorized_keys2 600.

Permalink | Enviar post por email Enviar post por email | Tech

Deixe o seu comentário


Feed