OpenSSHは、指定されたホスト名のControlMasterを無効にします


20

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011Mac OS X Snow Leopardで使用しています。私が持ってControlMaster持続的な接続を維持するように構成された機能を。私~/.ssh/configには次のものがあります:

Host *
  ControlPath /ms/%r@%h:%p
  ControlMaster auto
  ControlPersist 4h

Host *.unfuddle.com
  ControlMaster no

しかし、私が見るところから-unfuddle.comホストにSSHを使用しようとしても、マスター接続は常に作成されます:

[andrey-mbp〜] $ ssh -v git@droolit.unfuddle.com
OpenSSH_5.9p1、OpenSSL 0.9.8r 2011年2月8日
debug1:構成データの読み取り/Users/akhkharu/.ssh/config
debug1:/Users/akhkharu/.ssh/config行1:*のオプションの適用
debug1:/Users/akhkharu/.ssh/config行6:* .unfuddle.comのオプションの適用
debug1:設定データの読み取り/usr/local/Cellar/openssh/5.9p1/etc/ssh_config
debug1:auto-mux:既存のマスターを試す
debug1:制御ソケット「/ms/git@droolit.unfuddle.com:22」は存在しません
debug1:droolit.unfuddle.com [174.129.5.196]ポート22への接続
debug1:接続が確立されました。
debug1:IDファイル/Users/akhkharu/.ssh/id_rsaタイプ1
debug1:IDファイル/Users/akhkharu/.ssh/id_rsa-cert type -1
debug1:IDファイル/Users/akhkharu/.ssh/id_dsaタイプ2
debug1:IDファイル/Users/akhkharu/.ssh/id_dsa-cert type -1
debug1:IDファイル/Users/akhkharu/.ssh/id_ecdsaタイプ-1
debug1:IDファイル/Users/akhkharu/.ssh/id_ecdsa-cert type -1
debug1:リモートプロトコルバージョン2.0、リモートソフトウェアバージョンOpenSSH_5.8
debug1:一致:OpenSSH_5.8 pat OpenSSH *
debug1:プロトコル2.0の互換モードを有効にする
debug1:ローカルバージョン文字列SSH-2.0-OpenSSH_5.9
debug1:SSH2_MSG_KEXINITが送信されました
debug1:SSH2_MSG_KEXINITを受信しました
debug1:kex:server-> client aes128-ctr hmac-md5 none
debug1:kex:client-> server aes128-ctr hmac-md5 none
debug1:SSH2_MSG_KEX_ECDH_INITを送信
debug1:SSH2_MSG_KEX_ECDH_REPLYが必要です
debug1:サーバーホストキー:RSA a6:74:33:36:95:31:6e:a6:d7:71:87:b8:3c:38:e2:60
debug1:ホスト「droolit.unfuddle.com」は既知であり、RSAホストキーと一致します。
debug1:/Users/akhkharu/.ssh/known_hosts:390にキーが見つかりました
debug1:ssh_rsa_verify:署名が正しい
debug1:SSH2_MSG_NEWKEYSが送信されました
debug1:SSH2_MSG_NEWKEYSが必要です
debug1:SSH2_MSG_NEWKEYSを受信しました
debug1:ローミングはサーバーで許可されていません
debug1:SSH2_MSG_SERVICE_REQUESTが送信されました
debug1:SSH2_MSG_SERVICE_ACCEPTを受信しました
debug1:続行できる認証:publickey
debug1:次の認証方法:publickey
debug1:RSA公開鍵の提供:/Users/akhkharu/.ssh/id_rsa
debug1:サーバーはキーを受け入れます:pkalg ssh-rsa blen 277
debug1:認証に成功しました(公開鍵)。
droolit.unfuddle.comに対して認証されています([174.129.5.196]:22)。
debug1:マルチプレックスマスターソケットのセットアップ
debug1:チャンネル0:新規[/ms/git@droolit.unfuddle.com:22]
debug1:control_persist_detach:マスタープロセスのバックグラウンド化
debug1:バックグラウンドへの分岐
debug1:対話型セッションに入ります。
debug1:多重化制御接続
debug1:チャネル1:新しい[mux-control]
debug1:チャネル2:新しい[client-session]
debug1:リモート:強制コマンド。
debug1:リモート:ポート転送は無効です。
debug1:リモート:X11転送は無効です。
debug1:リモート:エージェント転送は無効です。
debug1:リモート:Pty割り当ては無効です。
debug1:リモート:強制コマンド。
debug1:リモート:ポート転送は無効です。
debug1:リモート:X11転送は無効です。
debug1:リモート:エージェント転送は無効です。
debug1:リモート:Pty割り当ては無効です。
debug1:mux_client_request_session:マスターセッションID:2
PTY割り当て要求が失敗しました
SSH_ORIGINAL_COMMANDが必要
debug1:client_input_channel_req:チャネル2 rtype終了ステータス応答0
debug1:client_input_channel_req:チャネル2 rtype eow@openssh.com応答0
debug1:チャンネル2:フリー:クライアントセッション、nchannels 3
debug1:チャンネル1:フリー:mux-control、nchannels 2
droolit.unfuddle.comへの共有接続が閉じられました。
[andrey-mbp〜] $ ll / ms /
合計0
srw ------- 1 akhkharu admin 0B Jul 17 11:55 git@droolit.unfuddle.com:22

ありがとう、
アンドレイ。

回答:


19

あなたの*ホストのスタンザは、それをキャッチしています。より具体的なホストスタンザをより早く配置します。


感謝しますが、それは私にはうまくいきません。すべてのホストでControlMasterを有効にする必要がありますが、unfuddle.comでは有効ではありません。使用しているすべてのホストを構成ファイルにリストすることはできません。機能しているように見えるのは、最初からunfuddle.comのルールを設定することです。
アンドレイチェルニー

8
つまり、より具体的なホストスタンザを以前に配置したときですか?
イグナシオバスケス-エイブラムス

ええ、それは奇妙ですが、動作します。
アンドレイチェルニー

私は長い間マンページを探していましたが、それは奇妙な優先事項です!
JanKanis

1
アンドレイがこの答えが正しいという事実に気付いたのか、彼が同意したコメントがそれを指摘しているのか、死ぬ日まで疑問に思うだろう。
広大なスーパーマン

10

SuperUserに関する私の同様の質問への回答で説明されているように、「bang」構文を使用してHost *、次のように元のスタンザから特定のホストを除外できます。

Host * !*.unfuddle.com
    ControlPath /ms/%r@%h:%p
    ControlMaster auto
    ControlPersist 4h

私の状況では、をHost使用するときのセクションの順序はHost *無関係であるように見えましたが、上記の方法は常に機能します。


5

私にとっては、追加でスタンザ内に設定ControlPathすると機能nonehostます。

あなたが試すことができます:

Host *.unfuddle.com   
    ControlMaster no
    ControlPath none

その後、制御セッションは生成されません。


私の場合、これに加えてHost *、ファイルの最後にセクションを追加する必要がありましたが、うまくいきました。
a3nm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.