O user@host:path/to/repoformato diz ao Git para usar ssh para fazer login hostcom o nome de usuário user. De git help clone:
Uma sintaxe alternativa semelhante a scp também pode ser usada com o protocolo ssh:
[user@]host.xz:path/to/repo.git/
A parte anterior a @é o nome de usuário e o método de autenticação (senha, chave pública, etc.) é determinado pelo ssh, não pelo Git. O Git não tem como passar uma senha para o ssh, porque o ssh pode nem mesmo usar uma senha, dependendo da configuração do servidor remoto.
Use ssh-agentpara evitar digitar senhas o tempo todo
Se você não deseja digitar sua senha ssh o tempo todo, a solução típica é gerar um par de chaves pública / privada , colocar a chave pública em seu ~/.ssh/authorized_keysarquivo no servidor remoto e carregar sua chave privada ssh-agent. Veja também Configurando Git sobre SSH para acessar uma vez , a página de ajuda do GitHub em passphrases chave ssh , documentação ssh do gitolite e documentação chaves SSH do Heroku .
Escolhendo entre várias contas no GitHub (ou Heroku ou ...)
Se você tiver várias contas em um local como o GitHub ou o Heroku, terá várias chaves ssh (pelo menos uma por conta). Para escolher em qual conta você deseja fazer login, você deve informar ao ssh qual chave privada usar .
Por exemplo, suponha que você tivesse duas contas do GitHub: fooe bar. Sua chave ssh para foois ~/.ssh/foo_github_ide sua chave ssh para baris ~/.ssh/bar_github_id. Você deseja acessar git@github.com:foo/foo.gitcom sua fooconta e git@github.com:bar/bar.gitcom sua barconta. Você adicionaria o seguinte ao seu ~/.ssh/config:
Host gh-foo
Hostname github.com
User git
IdentityFile ~/.ssh/foo_github_id
Host gh-bar
Hostname github.com
User git
IdentityFile ~/.ssh/bar_github_id
Você então clonaria os dois repositórios da seguinte maneira:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
Evitando o ssh completamente
Alguns serviços fornecem acesso HTTP como uma alternativa ao ssh:
GitHub:
https://username:password@github.com/username/repository.git
Gitorious:
https://username:password@gitorious.org/project/repository.git
Heroku: Veja este artigo de suporte .
AVISO : Adicionar sua senha ao URL do clone fará com que o Git armazene sua senha de texto sem formatação .git/config. Para armazenar sua senha com segurança ao usar HTTP, use um auxiliar de credencial. Por exemplo:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
O procedimento acima fará com que o Git solicite sua senha a cada 15 minutos (por padrão). Veja git help credentialspara detalhes.