<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fwolf's Blog &#187; time - Fwolf's Blog</title>
	<atom:link href="http://www.fwolf.com/blog/post/tag/time/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fwolf.com/blog</link>
	<description>随心·随意·随缘·努力～</description>
	<lastBuildDate>Wed, 07 Jul 2010 07:07:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ssh的连接重用</title>
		<link>http://www.fwolf.com/blog/post/385</link>
		<comments>http://www.fwolf.com/blog/post/385#comments</comments>
		<pubDate>Tue, 04 Mar 2008 14:58:00 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[reuse]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/post/385</guid>
		<description><![CDATA[原理很简单，开一个ssh连接在后台放着，以后再有需要用到ssh到同样主机的时候，直接使用这个连接的socket文件，不用再创建连接了，同理，也不需要再进行用户身份验证。 默认是关闭的，可以在~/.ssh/config中打开： Host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p 创建“Master”连接就可以用： ssh -M -N -f fwolf.com 认证成功后会创建socket文件master-fwolf@fwolf.com:22。 其它的介绍资料也很多，我是在邮件列表中看到的，惭愧，使用ssh很久了，现在才知道，网上用ssh master ControlMaster搜索资料很多。 实际使用中，我倒有一个反面的感觉，创建了“Master”之后，一般的scp什么的操作的确是快了，可如果单独开一个ssh terminal上去的话，输入的响应速度很变慢。开始以为是这个ssh连接也重用了“Master”的原因，后来加上-o ControlMaster=no参数强制不使用Master，单独创建新连接也是一样，不知道是什么原因导致的。 仔细测试一下效果，首先在已经创建Master的情况下连接主机，执行命令并马上退出： $ time ssh fwolf.com -C pwd 执行多次，得到的执行时间一般在0.33秒左右，然后关闭Master，再次执行这个命令，平均执行时间为6.7秒，的确是快了许多。 后来才发现，刚才对响应速度“慢”的感觉应该是错误的，可能是由于另外开着一个scp的缘故，scp完成之后，速度就快很多了。之所以会感觉“慢”，其实也是相对而言的，因为单独ssh连接上去之后，也是不中断的持续连接、持续响应，同样没有重新建立连接的时间，速度也是非常快的。开启Master主要对那些一会儿连接、一会儿断开，请求断断续续的情况最有效果。 另外，还有两个比较有用的相关控制命令： # 检查当前是否已经创建Master连接 $ ssh fwolf.com -O check Master running (pid=6350) # 发送断开当前Master连接的请求，比我用的笨kill方式好多了 $ ssh fwolf.com -O exit Exit request sent. $ ssh fwolf.com -O [...]]]></description>
			<content:encoded><![CDATA[<p>原理很简单，开一个ssh连接在后台放着，以后再有需要用到ssh到同样主机的时候，直接使用这个连接的socket文件，不用再创建连接了，同理，也不需要再进行用户身份验证。</p>

<p>默认是关闭的，可以在<code>~/.ssh/config</code>中打开：</p>

<pre><code>Host *
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
</code></pre>

<p>创建“Master”连接就可以用：</p>

<pre><code>ssh -M -N -f fwolf.com
</code></pre>

<p>认证成功后会创建socket文件<code>master-fwolf@fwolf.com:22</code>。</p>

<p>其它的介绍资料也很多，我是在<a href="http://groups.google.com/group/szlug/t/e504940647256c1f">邮件列表</a>中看到的，惭愧，使用ssh很久了，现在才知道，网上用ssh master ControlMaster搜索资料很多。</p>

<p>实际使用中，我倒有一个反面的感觉，创建了“Master”之后，一般的scp什么的操作的确是快了，可如果单独开一个ssh terminal上去的话，输入的响应速度很变慢。开始以为是这个ssh连接也重用了“Master”的原因，后来加上<code>-o ControlMaster=no</code>参数强制不使用Master，单独创建新连接也是一样，不知道是什么原因导致的。</p>

<p>仔细测试一下效果，首先在已经创建Master的情况下连接主机，执行命令并马上退出：</p>

<pre><code>$ time ssh fwolf.com -C pwd
</code></pre>

<p>执行多次，得到的执行时间一般在0.33秒左右，然后关闭Master，再次执行这个命令，平均执行时间为6.7秒，的确是快了许多。</p>

<p>后来才发现，刚才对响应速度“慢”的感觉应该是错误的，可能是由于另外开着一个scp的缘故，scp完成之后，速度就快很多了。之所以会感觉“慢”，其实也是相对而言的，因为单独ssh连接上去之后，也是不中断的持续连接、持续响应，同样没有重新建立连接的时间，速度也是非常快的。开启Master主要对那些一会儿连接、一会儿断开，请求断断续续的情况最有效果。</p>

<p>另外，还有两个比较有用的相关控制命令：</p>

<pre><code># 检查当前是否已经创建Master连接
$ ssh fwolf.com -O check
Master running (pid=6350)

# 发送断开当前Master连接的请求，比我用的笨kill方式好多了
$ ssh fwolf.com -O exit
Exit request sent.
$ ssh fwolf.com -O check
Control socket connect(/home/fwolf/.ssh/master-fwolf@fwolf.com:22): No such file or directory
</code></pre>

<h4>参考</h4>

<p><a href="http://www.linux.com/feature/54498">Accelerating OpenSSH connections with ControlMaster</a></p>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/reuse" title="reuse" rel="tag">reuse</a>, <a href="http://www.fwolf.com/blog/post/tag/ssh" title="ssh" rel="tag">ssh</a>, <a href="http://www.fwolf.com/blog/post/tag/time" title="time" rel="tag">time</a>, <a href="http://www.fwolf.com/blog/post/tag/tips" title="tips" rel="tag">tips</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/410" title="用ssh打通反向隧道，内网也可对外提供服务 (2008-07-10)">用ssh打通反向隧道，内网也可对外提供服务</a> (2)</li>
	<li><a href="http://www.fwolf.com/blog/post/300" title="针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS） (2007-03-18)">针对$_SERVER['PHP_SELF']的跨站脚本攻击（XSS）</a> (3)</li>
	<li><a href="http://www.fwolf.com/blog/post/443" title="配置安全的共享web服务器（抛砖引玉） (2009-06-09)">配置安全的共享web服务器（抛砖引玉）</a> (4)</li>
	<li><a href="http://www.fwolf.com/blog/post/279" title="配置ssh的自动登录 (2007-01-05)">配置ssh的自动登录</a> (12)</li>
	<li><a href="http://www.fwolf.com/blog/post/257" title="用unison来同步你的远程文件夹 (2006-11-26)">用unison来同步你的远程文件夹</a> (9)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/385/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
