git pullのパスワードを指定してコマンドを入力するにはどうすればよいですか?


139

このコマンドを1行で実行します。

git pull && [my passphrase]

どうやってするの?


次のようにして、パスフレーズを空に変更できます。help.github.com
articles

1
sshエージェントを実行する場合、パスフレーズを入力する必要性を回避できます。初めてgit pullを実行するときは、インタラクティブに実行します。sshエージェントは秘密鍵を記憶しているため、プロンプトが表示されることなくgit pullを実行できます。
Tim Finer

回答:


161

これは正確にはあなたが要求したものではありませんが、http(s)の場合:

  • パスワードは.netrcファイル(Windowsでは_netrc)に入れることができます。そこから自動的にピックアップされます。それは600のアクセス許可でホームフォルダーに移動します。
  • リポジトリを複製することもできますがhttps://user:pass@domain/repo、多くの場所でユーザー/パスが表示されるため、これは推奨されません...
  • 新しいオプションは、資格情報ヘルパーを使用することです。資格情報は、標準の資格情報ヘルパーを使用してローカル構成にクリアテキストで格納されることに注意してください。wincredを使用したcredential-helperは、Windowsでも使用できます。

資格情報ヘルパーの使用例

  • git config credential.helper store -資格情報を無期限に保存します。
  • git config credential.helper 'cache --timeout=3600'-60分の店舗

sshベースのアクセスの場合、必要に応じてsshキーを提供するsshエージェントを使用します。これには、コンピューターでキーを生成し、リモートサーバーに公開キーを格納し、秘密キーを関連するキーストアに追加する必要があります。


1
SSHの部分について詳しく教えてください。EC2インスタンスを構成していますが、パスワードとAWSオートスケールを要求せずにプルします。このパブリック/プライベートスキームは、優れたソリューションのように見えます。
Pedro Dusso、2015

1
@PedroDussoは、このスレッドがあなたが望んでいるもののように聞こえます
eis

2
デプロイのキーメカニズムの使用を終了しました。これは優れたソリューションのようです。ありがとう!
Pedro Dusso、2015

129

コマンドラインでhttps接続の資格情報を提供する1つの方法を見つけました。git pullに完全なURLを指定し、そこに資格情報を含めるだけです。

git pull https://username:password@mygithost.com/my/repository

以前に認証情報を使用してリポジトリを複製する必要はありません。これは、認証情報がに保存されないことを意味します.git/config。(しかし、シェルがあなたを裏切らないようにし、コマンドラインを履歴ファイルに保存してください。)


パスワードは必要ありません。これは、この方法でパスワードを書き込むのは安全ではありません
meteor

これは、すでに2012年に承認された回答に記載したものではありませんか?
eis

8
@eis:正確ではありません。重要なのは、資格情報を含むURLを使用してリポジトリを複製する必要はないが、資格情報を使用してURLからプルできることです。その結果、資格情報が.git / configファイルに含まれなくなります。
holgero

5
この:password部分を省略すると、Enterキーを押すとパスワードの入力を求められます。こうすることで、パスワードがbash履歴に保存されなくなります。
Matthias Fischer

1
はい@PramodGargの使用-git pull username:password@mygithost.com/my/repository.git Branch
PAVITRA

39

質問には直接回答しませんが、基本的に、リモートサーバーをプルするたびにパスワードを再入力しない方法を探しているときにこの質問を見つけました。

まあ、gitあなたはあなたの資格情報を有限の時間キャッシュすることができます。でカスタマイズ可能でgit configあり、このページではそれを非常によく説明しています:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

ターミナルで次を実行:

$ git config --global credential.helper cache
# Set git to use the credential memory cache

キャッシュタイムアウトをカスタマイズするには、次のようにします。

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

資格情報は、要求された期間メモリに保存されます。


5

Git 2.5以降(2014年第2四半期)では、Gitクレデンシャルヘルパーの「保存」が暗号化されていないパスワードの変更を保存する方法に注意してください。Junio C Hamano(によるコミット17c7f4dを
参照してくださいgitster

credential-xdg

store資格情報ヘルパーのサンプル " "バックエンドを微調整して、指定されたときにXDG構成ファイルの場所を尊重します。

ドキュメントは今言う:

指定されていない場合:

  • 資格情報から検索されます~/.git-credentials$XDG_CONFIG_HOME/git/credentials、と
  • 資格情報は~/.git-credentials、存在する場合、または$XDG_CONFIG_HOME/git/credentials存在し、前者が存在しない場合に書き込まれます。

0

パスワードに@がない場合、以下のcmdは機能します。パスワードに@がある git pull https://username:pass@word@mygithost.com/my/repository 場合は、以下に示すように%40に置き換えます。 git pull https://username:pass%40word@mygithost.com/my/repository

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.