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から始めます。
この問題を解決するにはどうすればよいですか?
ありがとう
git@dev01
から、SSH経由でプルしていると思います。したがって、一般的なパスワードなしのSSHの場合と同じ方法、具体的には公開鍵認証を使用できます。設定方法は多くのウェブサイトやチュートリアルで詳細に説明されていますが、簡単な要約は次のとおりです。
クライアントで、ssh-agent
またはPuTTYgenを使用してキーペアを作成します。
(この場合、root@dev02
はクライアントであり、git@dev01
はサーバーです。)
publicキーをサーバーの~/.ssh/authorized_keys
ファイルにコピーします。
(~/.ssh/id_rsa.pub
ファイル、またはPuTTYgenの「OpenSSH公開鍵」テキストからコピーします。)
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).