【问题标题】:Fabric not working when using ~/.ssh/config使用 ~/.ssh/config 时 Fabric 无法正常工作
【发布时间】:2012-04-26 08:39:20
【问题描述】:

我的 ~/.ssh/config 上有以下配置

Host death-star
    HostName deathstar.empire.com
    User vader
    IdentityFile ~/.ssh/death_id_rsa

还有下面的fabfile

from fabric.api import env, task

env.use_ssh_config = True

@task
def destroy_rebels():
    run("echo Alderaan has been destroyed")

我这样调用任务:

$ fab --host death-star destroy_rebels

这是我得到的输出:

[death-star] Executing task 'destroy_rebels'
[death-star] run: echo Alderaan has been destroyed

Fatal error: run() received nonzero return code -1 while executing!

Requested: echo Alderaan has been destroyed
Executed: /bin/bash -l -c "echo Alderaan has been destroyed"

Aborting.
Disconnecting from vader@deathstar.empire.com... done.

我很确定 ssh 配置是正确的,因为我可以ssh death-star 没有问题。

另外,当我指定主机名并使用用户 root 的默认密钥而不是使用 ssh 配置文件时,它可以工作:

$ fab --user root --host deathstar.empire.com destroy_rebels

你知道为什么会这样吗?

编辑:这是我的面料版本

$ fab --version
Fabric 1.4.1
ssh (library) 1.7.13

编辑 2

我已经重写了原帖的部分内容。我意识到root(使用默认键id_rsa 始终有效,即使使用.ssh/config,如果我添加一个新条目:

Host root-death-star
    HostName deathstar.empire.com
    User root
    IdentityFile ~/.ssh/id_rsa


$ fab --host root-death-star destroy_rebels # this works

但是使用非 root 用户 vader,并使用自己的密钥 death_id_rsa,它不会。但是,以 root 和 vader 的身份通过 SSH 连接到服务器仍然有效。

【问题讨论】:

  • 嗯,您在 IdentityFile 中有错字,这只是复制/粘贴问题吗?
  • 你能把fab --version的输出包括进来吗? (use_ssh_config 在 1.4 中添加)。哦,在你的最后一个例子中,--user vader 有效吗? (你可能还需要-i ~/ssh/id_rsa
  • 要尝试的另一件事是将 .ssh/config 中的 ~ 扩展为 /home/whatever - 可能是 ssh 扩展了波浪号,但 python ssh 库不是。
  • 如果你以 vader 身份登录并运行:/bin/bash -l -c "echo Alderaan has been destroy" 你会得到什么?也许您的个人资料脚本已损坏
  • 该特定用户的远程计算机上的bash 存在问题。我创建了一个新用户并使用它,现在一切正常。我仍然不知道我的第一个用户有什么问题。我意识到我对另外几个用户也有同样的问题,他们都使用 zsh 作为默认 shell。

标签: python bash ssh fabric


【解决方案1】:

从该输出来看,它与 ssh 连接无关,而是正在运行的 echo 的返回代码正在返回。至于是什么使它成为-1,根据您的附加说明,可能是您的 zsh 或 zshrc 中的某些自定义内容抛出了错误的返回码并且它正在冒泡。

【讨论】:

    猜你喜欢
    • 2017-03-27
    • 1970-01-01
    • 2014-10-13
    • 2021-11-28
    • 2019-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多