user@host:path/to/repo
形式はにログインするためにsshを使用するにGitを伝えるhost
ユーザー名を持ちます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
です。また、Git over SSHを1回ログインするための設定、GitHubのssh キーパスフレーズに関するヘルプページ、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
については、を参照してください。