0

根据文档(https://codeship.com/documentation/continuous-deployment/deployment-with-ftp-sftp-scp/#run-commands-on-a-remote-server-via-ssh),您需要将所有命令作为单个命令运行。

虽然我明白这一点,但我不明白如何将以下命令作为单个命令运行,该过程将是:

  1. ssh 演示@111.1.111.101
  2. ssh 用户@测试服务器
  3. cd部署
  4. ./deploy.sh

并不是第二个命令运行111.1.111.101demo

这是我目前尝试过的:

ssh demo@111.1.111.101 "ssh user@test-server; cd deploy; ./deploy.sh"

但这似乎在第一个 ssh 命令之后卡住了,它永远不会进入第二个 ssh。

4

2 回答 2

2
ssh -t demo@111.1.111.101 'ssh user@test-server "cd deploy; ./deploy.sh"'
于 2015-08-18T11:55:25.807 回答
1

就像 user156213 说的可能你不需要两次跳转,但无论如何你要添加一个 ; 在破坏一切的ssh之后

一跳

ssh user@test-server "cd deploy ; ./deploy.sh"

您也可以尝试删除第一行

ssh user@test-server ./deploy/deploy.sh

查看 ssh 中的 ProxyCommand 以避免跳转,编辑您的 .ssh/config 以包含类似的内容

Host first
  Hostname 111.1.111.101
  User demo

Host second 
  User user
  ProxyCommand ssh -q first nc test-server

现在用一个简单的

ssh second deploy/deploy.sh 

会做的工作

于 2015-08-18T11:24:49.080 回答