この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
のアカウントでアクセスしたいです。あなたはあなたのに以下を追加するでしょう:foo
git@github.com:bar/bar.git
bar
~/.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
はをご覧ください。