web-dev-qa-db-ja.com

パスワードを要求せずにgitpullする方法は?

Gitリポジトリの自動プルを作成するのに問題があります。私の状況を説明します。Linux(Debian)に2つのサーバーがあり、1つはリポジトリ(dev01)用で、もう1つはdoxygen(dev02)を使用したドキュメントの作成用です。私はbashでスクリプトを作成して、毎日doxygenを実行しますが、問題なく動作します。

次のステップは、dev01でリポジトリをプルするためにdev02でgitプルを毎日行うことです。スクリプトを作成しようとしましたが、dev02でgit pullを実行すると、常に次のようなdev01パスワードの入力を求められます。

root@dev02:/repos# git pull git@dev01's password:

私はネットで解決策を探し、スクリプトを作成するための何か(期待)を見つけました:

#!/usr/bin/env expect cd /repos/repos_name set password "git_password" spawn /usr/bin/git pull expect "git@dev01's password:" send "$password\r"

実行されますが何もしません... Webでいくつかの解決策を見つけましたが、試したすべてが機能しません。たぶんLinuxで私はそれを解決するために他のことをすることができますが、私はこのOSから始めます。

この問題を解決するにはどうすればよいですか?

ありがとう

2
Algorys

git@dev01から、SSH経由でプルしていると思います。したがって、一般的なパスワードなしのSSHの場合と同じ方法、具体的には公開鍵認証を使用できます。設定方法は多くのウェブサイトやチュートリアルで詳細に説明されていますが、簡単な要約は次のとおりです。

  1. クライアントで、ssh-agentまたはPuTTYgenを使用してキーペアを作成します。

    (この場合、root@dev02はクライアントであり、git@dev01はサーバーです。)

  2. publicキーをサーバーの~/.ssh/authorized_keysファイルにコピーします。

    ~/.ssh/id_rsa.pubファイル、またはPuTTYgenの「OpenSSH公開鍵」テキストからコピーします。)

  3. ssh -v user@serverを実行し、使用されているキーが表示されていることを確認します。

    debug1: Authentications that can continue: publickey,password,keyboard-interactive
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /home/grawity/.ssh/id_global
    debug1: Server accepts key: pkalg ssh-rsa blen 535
    debug1: Authentication succeeded (publickey).
    
2
user1686