web-dev-qa-db-ja.com

gitコマンドの自動パスワード処理を構成する方法:

Androidアプリケーションをビルドするビルドサーバー用の自動ビルドスクリプトがあります。このビルドプロセスの一環として、リポジトリから現在のソースをプルしてリリースを作成し、プッシュコマンドを作成する必要がありますビルドプロセスの最後に、ビルドサーバーによってビルドプロセス中に変更されたファイルでリポジトリを更新します。

したがって、次のbashスクリプトを作成する必要があります。

#!/bin/bash
clear
echo "Start of Pull command"
git pull
echo "End of Pull command"
echo "Start of incrementedRelease build"
gradle incrementedRelease
echo "End of incrementedRelease build"
echo "Start of Commit command"
git commit -a -m "======================== Commit to change Manifest Version ======================"
echo "End of Commit command"
echo "Start of Push command"
git Push
echo "End of Push command"

問題はgit Pushgit pullのコマンドにあり、gitはパスワードの入力を求めてきます。

Gitのパスワードを入力する前に、このコマンドを実行してパスワードストアを作成しようとしました。

  Sudo git config --global credential.helper store

Sudoコマンドの有無にかかわらず、次にスクリプトを実行すると、パスワードの入力を求められます。

誰かがgitパスワードを保存して、pullまたはPushコマンドごとにプロンプ​​トが表示されないようにする方法を教えてもらえますか?できればファイルから取得し、sshは使用しないでください。キーを生成するためにgitサーバーにアクセスできないためです。

PDATE:これは、ユーザーのホームフォルダーにあるフォルダーです。

enter image description here

前もって感謝します。

2
Emil Adz

credential.helperconfigオプションをstoreに設定すると、間違いなくあなたが求めていることを実行できるはずです。それでも、ファイルに保存するにはユーザー名とパスワードを少なくとも1回入力する for git-credential-store 必要があります(デフォルトでは~/.git-credentials)、しかし、そうする必要はもうありません。

資格情報を保存しているファイルは暗号化されず、それを読み取ることができるユーザーはリポジトリに対するユーザーのアクセス許可を取得するため、read-onlyを設定することをお勧めします。 user特にこれについては、credential.helper構成オプションをstoreにグローバルに設定しません。

リポジトリへのWebインターフェイス( GithubBitbucketGitlab など)を使用している場合は、(推奨、 imho)リポジトリ設定を介してSSHデプロイキーを設定し、安全な読み取り専用アクセスを提供する可能性。

2
Likeyn

Linuxを使用していると仮定します。 このチュートリアル パスワードを入力せずにリモートサーバーへのssh接続を確立する方法について説明します。

これらの手順に従うと、gitは資格情報を要求しなくなります。

さらに、パスワードなしでコマンドラインからサーバーにsshすることができます。

0
user258346