このuser@host:path/to/repoフォーマットは、sshを使用しhostてユーザー名でログインするようにGitに指示しますuser。差出人git help clone:
代替のscpのような構文をsshプロトコルで使用することもできます。
[user@]host.xz:path/to/repo.git/
の前の部分@はユーザー名であり、認証方法(パスワード、公開鍵など)はGitではなくsshによって決定されます。リモートサーバーの構成によってはsshがパスワードを使用しない場合があるため、Gitにはパスワードをsshに渡す方法がありません。
ssh-agent常にパスワードを入力しないようにするために使用します
sshパスワードを常に入力したくない場合、一般的な解決策は、公開鍵と秘密鍵のペアを生成し、公開鍵をリモートサーバー上の~/.ssh/authorized_keysファイルに入れて、秘密鍵をにロードすることssh-agentです。一度ログインするためのGitoverSSHの構成、 sshキーパスフレーズに関するGitHubのヘルプページ、gitoliteのsshドキュメント、およびHerokuのsshキードキュメントも参照してください。
GitHub(またはHerokuまたは...)で複数のアカウントから選択する
GitHubやHerokuのような場所に複数のアカウントがある場合は、複数のsshキーがあります(アカウントごとに少なくとも1つ)。ログインするアカウントを選択するには、使用する秘密鍵をsshに指示する必要があります。
たとえば、2つのGitHubアカウントがあるとします: fooとbar。のsshキーfooはで~/.ssh/foo_github_idあり、のsshキーはbarです~/.ssh/bar_github_id。あなたはあなたのアカウントとあなたgit@github.com:foo/foo.gitのアカウントでアクセスしたいです。あなたはあなたのに以下を追加するでしょう:foogit@github.com:bar/bar.gitbar~/.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
次に、次のように2つのリポジトリのクローンを作成します。
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
sshを完全に回避する
一部のサービスは、sshの代わりにHTTPアクセスを提供します。
GitHub:
https://username:password@github.com/username/repository.git
Gitorious:
https://username:password@gitorious.org/project/repository.git
Heroku:このサポート記事を参照してください。
警告:クローンURLにパスワードを追加すると、Gitはプレーンテキストのパスワードをに保存します.git/config。HTTPを使用するときにパスワードを安全に保存するには、資格情報ヘルパーを使用します。例えば:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
上記の場合、Gitは15分ごとにパスワードを要求します(デフォルト)。詳細git help credentialsはをご覧ください。