WindowsでGit Bashを使用するたびに秘密鍵を解読するためのパスワードを入力する必要がありますか?windows


Answers

この回答は、SSH鍵のパスフレーズではなく、GitHubのユーザ名とパスワードを永続的に保存する方法を説明しています。

ウィンドウでは、 $ git config --global credential.helper wincred実行するだけ$ git config --global credential.helper wincred

つまり、次にプッシュすると、いつものようにユーザー名とパスワードを入力しますが、Windows資格情報に保存されます。 その後、もう一度入力する必要はありません。

のように、 http://www.tilcode.com/push-github-without-entering-username-password-windows-git-bash/

Question

私はgitの私的なリポジトリからダウンロードする自動構築サービスを持っています。 問題は、リポジトリを複製しようとするときに、パスワードが記憶されていないため、パスワードを提供する必要があることです。 人間とのやりとりがないので、パスワードを永久に待ちます。 id_rsa.pubからどうやって覚えておくことができますか?




新しい端末を開くときにsshのパスフレーズを入力する必要はありません。 残念ながら、starmonkeyのソリューションでは、セッションごとにパスワードを入力する必要があります。 代わりに、私はこれを私の.bash_profileに持っています:

# Note: ~/.ssh/environment should not be used, as it
#       already has a different purpose in SSH.

env=~/.ssh/agent.env

# Note: Don't bother checking SSH_AGENT_PID. It's not used
#       by SSH itself, and it might even be incorrect
#       (for example, when using agent-forwarding over SSH).

agent_is_running() {
    if [ "$SSH_AUTH_SOCK" ]; then
        # ssh-add returns:
        #   0 = agent running, has keys
        #   1 = agent running, no keys
        #   2 = agent not running
        ssh-add -l >/dev/null 2>&1 || [ $? -eq 1 ]
    else
        false
    fi
}

agent_has_keys() {
    ssh-add -l >/dev/null 2>&1
}

agent_load_env() {
    . "$env" >/dev/null
}

agent_start() {
    (umask 077; ssh-agent >"$env")
    . "$env" >/dev/null
}

if ! agent_is_running; then
    agent_load_env
fi

# if your keys are not stored in ~/.ssh/id_rsa or ~/.ssh/id_dsa, you'll need
# to paste the proper path after ssh-add
if ! agent_is_running; then
    agent_start
    ssh-add
elif ! agent_has_keys; then
    ssh-add
fi

unset env

これは新しい端末セッションのための私のパスフレーズも覚えています。 起動後に最初のターミナルを開いたときに一度だけ入力する必要があります。

私はこれを得た場所を信用したい、それは他の人の仕事の修正だが、どこから来たのか覚えていない。 ありがとう匿名の作者!




コードをプッシュしようとすると、以下のエラーが表示されます。

$ git push origin dev

remote: Too many invalid password attempts. Try logging in through the website with your password.
fatal: unable to access 'https://naushadqamar-1@bitbucket.org/xxxx/xxxx-api.git/': The requested URL returned error: 403

数時間の研究の後、私は以下のコマンドを使う必要があることを発見しました

$ git config --global credential.helper cache

上記のコマンドを実行した後、私はgit hubのユーザー名とパスワードを入力するよう求められます。 正しい資格情報を提供した後、自分のコードをプッシュすることができます。




.sshに接続するユーザの.sshフォルダの下にauthorized_keysファイルを作成する必要があります。 たとえば、ユーザー名buildservicerepo.server使用すると、次のように実行できます。

cd ~buidservice
mkdir ./ssh
cat id_rsa.pub >> .ssh/authorized_keys

以下のことを確認する必要があります。

  1. 対応するid_rsa秘密鍵はbuilservice@build.server:~/.shh/id_rsaます。

  2. repo.serverの指紋はbuildservice@build.server:~/.ssh/known_hostsファイルに保存されます。 通常は、 repo.serverに接続するためにsshを最初に試行した後に実行されssh