Jenkins构建后脚本将永远加载

Jenkins构建后脚本将永远加载,jenkins,ssh,post-build,Jenkins,Ssh,Post Build,我已经用bitbucket制作了一个web钩子,除了构建后脚本,其他一切都正常工作。我正在尝试执行一个shell命令,将构建推送到登台服务器上,出于某种奇怪的原因,shell在使用ssh密钥成功登录到服务器后永远挂起/加载 以下是我的命令: sudo ssh -tt -i ~/.ssh/id_rsa user@ip cd default git commit -am "inc Jenkins" git pull origin master composer install npm install

我已经用bitbucket制作了一个web钩子,除了构建后脚本,其他一切都正常工作。我正在尝试执行一个shell命令,将构建推送到登台服务器上,出于某种奇怪的原因,shell在使用ssh密钥成功登录到服务器后永远挂起/加载

以下是我的命令:

sudo ssh -tt -i ~/.ssh/id_rsa user@ip
cd default
git commit -am "inc Jenkins"
git pull origin master
composer install
npm install
在执行第一行之后,shell永远不会结束


另一方面(登台服务器),当shell开始挂起时,auth日志会告诉我:没有从******

接收标识字符串生成后的步骤完全按照您的设置工作:登录到交互式远程终端。由于没有进一步的输入,该步骤将无限期挂起

要使其正常工作,您需要使用SSH语法传递所需的命令:

ssh -i ~/.ssh/id_rsa user@ip "cd default;git commit -am \"inc Jenkins\";git pull origin master;composer install;npm install;exit"

我省略了
-tt
,因为远程执行不需要它;您可能希望在某些边缘情况下保留它。

构建后步骤的工作方式与您设置的完全相同:登录到交互式远程终端。由于没有进一步的输入,该步骤将无限期挂起

要使其正常工作,您需要使用SSH语法传递所需的命令:

ssh -i ~/.ssh/id_rsa user@ip "cd default;git commit -am \"inc Jenkins\";git pull origin master;composer install;npm install;exit"

我省略了
-tt
,因为远程执行不需要它;您可能希望在某些边缘情况下保留它。

远程用户设置的外壳是什么?远程服务器上的
authorized_keys
行中是否有针对该密钥文件的特殊指令?Its-bash和no在authorized_keys文件中没有任何特殊指令。它们只有一个关于密钥名和公共ssh密钥的注释?远程服务器上的
authorized_keys
行中是否有针对该密钥文件的特殊指令?Its-bash和no在authorized_keys文件中没有任何特殊指令。他们只是对密钥名和公共ssh密钥发表了评论。老兄,非常感谢。它工作了,但我刚开始时不得不添加sudo,因为它给了我拒绝权限(公钥),这允许它并给了它获取密钥的权限(我还必须给jenkins用户权限…等等),再次感谢!老兄,非常感谢你。它工作了,但我刚开始时不得不添加sudo,因为它给了我拒绝权限(公钥),这允许它并给了它获取密钥的权限(我还必须给jenkins用户权限…等等),再次感谢!