0

テストサーバーにすべてをプッシュするシェルスクリプトを実行するようにTeamCityを設定しようとしています。

ビルドプロセスは次のようになります。

  • GitHubからすべてのコードを取得します。
  • UnitTestsを実行してビルドします
  • gitを使用してテストサーバー(amazon ec2)にプッシュするシェルスクリプト

ここでの問題は、シェルスクリプトがTCによって実行されている場合、テストサーバーにプッシュすることが許可されていないことです。

「許可が拒否されました(公開鍵)」というメッセージが表示されます。

シェルからスクリプトを実行するときに同じ問題が発生しましたが、ssh-addを使用してユーザー(TCを実行する同じユーザー)にキーを追加することでスクリプトを機能させました。

したがって、スクリプトを手動で実行できますが、TCにスクリプトを実行させたいと思います。

シェルスクリプトの実行にTCとの違いがあるのか​​、サーバー上のシェルにあるのかを知っている人はいますか?

..fredrik

4

1 に答える 1

1

この問題には 2 つの解決策があります。

  • git リモート リポジトリへの送信を有効にするために必要な TC ユーザー用の ssh キーを作成します (これがより良い解決策です)。
  • キーを TC ユーザーの~/.ssh/ディレクトリにコピーします (これはお勧めしません)。

更新: TC ユーザーに sudo を実行し、宛先への ssh を試行することで確認できます (verbose パラメーターを使用)。ssh が機能する場合、git は宛先に接続できます。

于 2011-06-23T08:43:54.213 に答える