我正在使用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
Run Code Online (Sandbox Code Playgroud)
但是,据我所知 - 即使我尝试将 SSH 用于 unfuddle.com 主机,也总是会创建主连接:
[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 line 1: Applying options for * debug1:/Users/akhkharu/.ssh/config 第 6 行:为 *.unfuddle.com 应用选项 debug1:读取配置数据 /usr/local/Cellar/openssh/5.9p1/etc/ssh_config debug1:自动复用:尝试现有的主 debug1:控制套接字“/ms/git@droolit.unfuddle.com:22”不存在 debug1:连接到 droolit.unfuddle.com [174.129.5.196] 端口 22。 debug1:连接建立。 debug1:身份文件 /Users/akhkharu/.ssh/id_rsa 类型 1 debug1:身份文件/Users/akhkharu/.ssh/id_rsa-cert type -1 debug1:身份文件 /Users/akhkharu/.ssh/id_dsa 类型 2 debug1:身份文件/Users/akhkharu/.ssh/id_dsa-cert type -1 debug1:身份文件/Users/akhkharu/.ssh/id_ecdsa type -1 debug1:身份文件/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: 客户端->服务器 aes128-ctr hmac-md5 无 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:复用控制连接 调试 1:通道 1:新的 [多路复用控制] 调试 1:通道 2:新的 [客户端会话] 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 调试 1:通道 2:免费:客户端会话,nchannels 3 debug1:通道 1:空闲:多路复用控制,nchannels 2 与 droolit.unfuddle.com 的共享连接已关闭。
[andrey-mbp ~]$ ll /ms/ 共 0 srw------- 1 akhkharu admin 0B Jul 17 11:55 git@droolit.unfuddle.com:22
谢谢,
安德烈。
Ign*_*ams 24
您的*主机节正在捕捉它。更早地放置更具体的主机节。
小智 13
如我在 SuperUser 上的类似问题的回答中所述,您可以使用“bang”语法从原始Host *节中排除特定主机,如下所示:
Host * !*.unfuddle.com
ControlPath /ms/%r@%h:%p
ControlMaster auto
ControlPersist 4h
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我发现Host使用 aHost *时节的顺序似乎无关紧要,但上述方法始终有效。
小智 6
对我来说,它的工作原理,当我还设置ControlPath于none该内host节。
你可以试试:
Host *.unfuddle.com
ControlMaster no
ControlPath none
Run Code Online (Sandbox Code Playgroud)
然后将不会生成控制会话。
| 归档时间: |
|
| 查看次数: |
12696 次 |
| 最近记录: |