1

~/.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

また、ホスト名を指定し、ssh 構成ファイルを使用する代わりにユーザー root のデフォルト キーを使用すると、次のように動作します。

$ 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

vaderしかし、独自のキーを持つ非ルートユーザーを使用すると、death_id_rsaそうではありません。ただし、サーバーへの SSH 接続は、root および vader として引き続き機能します。

4

1 に答える 1

0

その出力からは、ssh接続とは関係ありませんが、実行中のエコーからの戻りコードが返されます。追加のメモから、何が-1になるかについては、zshまたはzshrcのカスタムが不正な戻りコードをスローし、それがバブリングしている可能性があります。

于 2012-04-26T00:39:20.080 に答える