使ってます OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
Mac 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 [email protected] OpenSSH_5.9p1、OpenSSL 0.9.8r 8 Feb 2011 debug1:設定データ/ユーザーの読み取り/akhkharu/.ssh/config debug1:/Users/akhkharu/.ssh/config line 1:* debug1:のオプションの適用:/Users/akhkharu/.ssh/config line 6:Applying * .unfuddle.com debug1のオプション:構成データの読み取り/usr/local/Cellar/openssh/5.9p1/etc/ssh_config debug1:auto-mux:既存のマスターの試行 debug1:制御ソケット "/ms/[email protected]:22"が存在しません debug1:droolit.unfuddle.com [174.129.5.196]ポート22に接続しています。 debug1 :接続が確立されました。 デバッグ1:識別ファイル/Users/akhkharu/.ssh/id_rsaタイプ1 デバッグ1:識別ファイル/Users/akhkharu/.ssh/id_rsa-certタイプ-1 debug1:IDファイル/Users/akhkharu/.ssh/id_dsaタイプ2 debug1:IDファイル/Users/akhkharu/.ssh/id_dsa-certタイプ-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 sent debug1 :SSH2_MSG_KEXINITが受信されました デバッグ1:kex:サーバー->クライアントaes128-ctr hmac-md5なし デバッグ1:kex:クライアント->サーバーaes128-ctr hmac-md5なし デバッグ1: SSH2_MSG_KEX_ECDH_INIT debug1:sending 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 sent debug1:expecting SSH2_MSG_NEWKEYS debug1:SSH2_MSG_NEWKEYS r eceived debug1:サーバーでローミングは許可されていません debug1:SSH2_MSG_SERVICE_REQUEST sent debug1:SSH2_MSG_SERVICE_ACCEPT received debug1:継続できる認証:publickey debug1 :次の認証方法:publickey debug1:RSA公開鍵の提供:/Users/akhkharu/.ssh/id_rsa debug1:サーバーが鍵を受け入れる:pkalg ssh-rsa blen 277 debug1 :認証に成功しました(publickey)。 droolit.unfuddle.com([174.129.5.196]:22)に対して認証されました。 debug1:マルチプレックスマスターソケットのセットアップ debug1:チャネル0 :新しい[/ms/[email protected]:22] debug1:control_persist_detach:backgrounding master process debug1:forking to background debug1:Entering interactive session。 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:master session id:2 PTY allocation request failed Need SSH_ORIGINAL_COMMAND debug1:client_input_channel_req:channel 2 rtype exit-status reply 0 debug1:client_input_channel_req:channel 2 rtype [email protected] reply 0 debug1:channel 2:free:client-session、nchannels 3 debug1:channel 1:free:mux-control、 nchannels 2 droolit.unfuddle.comへの共有接続が閉じられました。
[andrey-mbp〜] $ ll /ms/ 合計0 srw ------- 1 akhkharu admin 0B Jul 17 11:55 [email protected] .com:22
おかげで、
アンドレイ。
きみの *
ホストスタンザがキャッチしています。より具体的なホストスタンザを先に配置します。
SuperUserでの私の同様の質問 への回答で説明されているように、 "bang"構文を使用して、次のように特定のホストを元のHost *
スタンザから除外できます。
Host * !*.unfuddle.com
ControlPath /ms/%r@%h:%p
ControlMaster auto
ControlPersist 4h
私の状況では、Host *
を使用するときのHost
セクションの順序は無関係であるように見えましたが、上記の方法は常に機能します。
私にとっては、ControlPath
スタンザ内でnone
をHost
にさらに設定すると機能します。
あなたが試すことができます:
Host *.unfuddle.com
ControlMaster no
ControlPath none
その後、制御セッションは生成されません。