【问题标题】:Running remote commands after vagrant ssh在 vagrant ssh 之后运行远程命令
【发布时间】:2014-04-26 17:13:11
【问题描述】:

vagrant ssh -- EXTRA SSH ARGS 应该允许将额外的参数传递给 ssh。

vagrant ssh -- -t 'cd /var/www' 应该 ssh 进入 vagrant 并将目录更改为 /var/www,但没有。相反,它返回

ssh: 无法解析主机名 ls: nodename or servname provided, or not known

我错过了什么?

【问题讨论】:

    标签: ssh vagrant


    【解决方案1】:

    这对我有用:

    vagrant ssh -- -t 'cd /var/www; /bin/bash'
    

    【讨论】:

    • 啊哈!杰出的。启动 bash,使其不会立即退出。谢谢!你也可以vagrant ssh -c 'echo hello; /bin/bash'
    • @mpen - vagrant -c 对我不起作用。但这个答案有效。
    • @progonkpa 请参阅vagrantup.com/docs/cli/ssh.html 了解关于 -- 行为的说明
    • "如果在命令行中找到 --(两个连字符),则在此之后的任何参数都将直接传递到 ssh 可执行文件中。这允许您传递任意命令来执行操作例如反向隧道进入 ssh 程序。” 这对一般的 bash 有效,而不仅仅是 Vagrant
    【解决方案2】:

    远程运行 vagrant box 的命令:

    vagrant ssh -c "COMMAND; COMMAND1"
    

    如果你需要,试试vagrant ssh --help

    【讨论】:

    • 这个答案在我的情况下不起作用,它正在执行vagrant ssh -c "bundle exec rake some_task"。当命令包含exec 时,它似乎失败了,Emyl 的答案工作正常。
    • 这允许你在命令执行后留在你的机器上。
    猜你喜欢
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多