<?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>庆亮的博客-webgame架构 &#187; ssh</title>
	<atom:link href="http://www.qingliangcn.com/tag/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.qingliangcn.com</link>
	<description>关注LAMP&#124;PHP源代码分析&#124;web架构&#124;PHP扩展&#124;Erlang&#124;服务端架构</description>
	<lastBuildDate>Fri, 10 Jun 2011 04:10:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linux之路 &#8212; SSH篇</title>
		<link>http://www.qingliangcn.com/2009/07/linux%e4%b9%8b%e8%b7%af-ssh%e7%af%87/</link>
		<comments>http://www.qingliangcn.com/2009/07/linux%e4%b9%8b%e8%b7%af-ssh%e7%af%87/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 07:29:56 +0000</pubDate>
		<dc:creator>庆亮</dc:creator>
				<category><![CDATA[Linux/Unix/BSD]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[securecrt]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[winscp]]></category>

		<guid isPermaLink="false">http://www.nd21.com/?p=151</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160; 需要的windows软件：SecureCRT，WinSCP 一、前言 &#160;&#160;&#160;&#160;&#160;&#160;&#160; 即使Linux本身的安全性已经相当好，我们仍然需要在实际操作中关注某些安全要点。目前大部分的Linux管理都采用远程控制来进行，如果保证远程控制中数据的安全是一个合格的linux管理员必须熟悉的技能。 &#160;&#160;&#160;&#160;&#160;&#160;&#160; 各种黑客行为、尝试给我们的网络带来了大量的破坏，但不可否认这些行为和尝试也给计算机安全带来了极大的促进。从理论上来说，网络传输中任何对称加密算法都是不安全的，所以我们在日常的linux管理中应该采用非对称加密算法来进行权限验证。SSH是一种加密传输数据的方式（不同于telnet等的明文数据传输），是目前最通用的linux远程安全控制方案，它提供两种认证方式：密码认证和密匙认证。关于非对称加密的相关知识请看 http://baike.baidu.com/view/554866.htm &#160;&#160;&#160;&#160;&#160;&#160; 本文以Centos 5.3 为例并假设你已经有一个安装好的Linux主机或者虚拟机，我这里采用的是虚拟机。 二、用户配置 平时我们为了安全一般不采用root直接登录到服务器，实际上多数的维护操作并不需要root权限，过多的权限可能只会带来更多的麻烦，通常我们只在需要时才su。那么如何进行日常的维护操作呢？ 1. 添加一个用于维护的账号， # useradd centosadmin， 为centosadmin设置密码， # passwd centosadmin，请记好你的密码 2.将该用户添加到wheel组。为什么？ 为了操作安全，我们需要只有某个特殊的用户组中用户输入了su -，并且有正确的root密码时才能获得root shell，而其他组的用户即使输入了正确的root密码，也无法获得su shell，而这个特殊的组通常为wheel，这仅仅是一个惯例，你可以自己添加一个组来实现这个功能。 3.配置只有wheel组的用户能够通过su 获得root shell。&#160;# vim /etc/pam.d/su 取消这一行的注释 &#160;auth required pam_wheel.so use_uid，然后保存退出 这时可以测试发现，非wheel已经无法通过su获得root shell了。 &#160; 三、密匙 1. # su centosadmin，输入你的密码。 # cd ~ 进入centosadmin的主目录，&#160;建立&#160;.ssh目录（为什么？）&#160; 2. #&#160;ssh-keygen&#160;-t&#160;rsa&#160;，表示使用SSH2协议生成RSA公匙和私匙。 你将看到这行提示&#160;&#160; Enter file [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需要的windows软件：SecureCRT，WinSCP</p>
<p><span style="font-size: large"><strong><span style="color: #0000ff">一、前言</span></strong></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 即使Linux本身的安全性已经相当好，我们仍然需要在实际操作中关注某些安全要点。目前大部分的Linux管理都采用远程控制来进行，如果保证远程控制中数据的安全是一个合格的linux管理员必须熟悉的技能。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 各种黑客行为、尝试给我们的网络带来了大量的破坏，但不可否认这些行为和尝试也给计算机安全带来了极大的促进。从理论上来说，网络传输中任何对称加密算法都是不安全的，所以我们在日常的linux管理中应该采用非对称加密算法来进行权限验证。SSH是一种加密传输数据的方式（不同于telnet等的明文数据传输），是目前最通用的linux远程安全控制方案，它提供两种认证方式：密码认证和密匙认证。关于非对称加密的相关知识请看 <a href="http://baike.baidu.com/view/554866.htm">http://baike.baidu.com/view/554866.htm</a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文以Centos 5.3 为例并假设你已经有一个安装好的Linux主机或者虚拟机，我这里采用的是虚拟机。<span id="more-151"></span></p>
<p><span style="font-size: large"><strong><span style="color: #0000ff">二、用户配置</span></strong></span></p>
<p>平时我们为了安全一般不采用root直接登录到服务器，实际上多数的维护操作并不需要root权限，过多的权限可能只会带来更多的麻烦，通常我们只在需要时才su。那么如何进行日常的维护操作呢？</p>
<p>1. 添加一个用于维护的账号， # useradd centosadmin， 为centosadmin设置密码， # passwd centosadmin，请记好你的密码</p>
<p>2.将该用户添加到wheel组。为什么？ 为了操作安全，我们需要只有某个特殊的用户组中用户输入了su -，并且有正确的root密码时才能获得root shell，而其他组的用户即使输入了正确的root密码，也无法获得su shell，而这个特殊的组通常为wheel，这仅仅是一个惯例，你可以自己添加一个组来实现这个功能。</p>
<p>3.配置只有wheel组的用户能够通过su 获得root shell。&nbsp;# vim /etc/pam.d/su</p>
<p><img alt="" height="44" src="http://www.qingliangcn.com/blog2/blog2/uploads/5(1).jpg" width="645" /></p>
<p>取消这一行的注释 &nbsp;auth required pam_wheel.so use_uid，然后保存退出</p>
<p>这时可以测试发现，非wheel已经无法通过su获得root shell了。</p>
<p><img alt="" height="72" src="http://www.qingliangcn.com/blog2/blog2/uploads/6(1).jpg" width="262" /></p>
<p>&nbsp;</p>
<p><span style="font-size: large"><strong><span style="color: #0000ff">三、密匙</span></strong></span></p>
<p><span style="font-size: larger">1. # su centosadmin，输入你的密码。 # cd ~ 进入centosadmin的主目录，&nbsp;建立&nbsp;.ssh目录（为什么？）&nbsp;</span></p>
<p><span style="font-size: larger">2. #&nbsp;ssh-keygen&nbsp;-t&nbsp;rsa&nbsp;，表示使用SSH2协议生成RSA公匙和私匙。</span></p>
<p><span style="font-size: larger">你将看到这行提示&nbsp;&nbsp;</span></p>
<p><span style="font-size: larger">Enter file in which to save the key (/home/centosadmin/.ssh/id_rsa): </span></p>
<p><span style="font-size: larger">如无特殊需要直接回车即可，然后是设置你的密匙口令</span></p>
<p><span style="font-size: larger">Enter passphrase (empty for no passphrase): </span></p>
<p><span style="font-size: larger">这个是在之后的密匙登录SSH时会用到，一定要记住。</span></p>
<p><span style="font-size: larger">3. 这时你的/home/centosadmin/.ssh/下应该有如下的两个文件</span></p>
<p><span style="font-size: larger">id_rsa&nbsp; id_rsa.pub</span></p>
<p><span style="font-size: larger">分别是私匙和公匙文件。</span></p>
<p><span style="font-size: larger">4. 下载密匙到本地。&nbsp; windows下打开winscp（没有这个工具？去下载吧）</span>，操作很简单，和FTP工具类似，登录后会自动进入对应用户的主目录</p>
<p><img alt="" height="236" src="http://www.qingliangcn.com/blog2/blog2/uploads/7(1).jpg" width="577" /></p>
<p>把</p>
<p><span style="font-size: larger">id_rsa&nbsp; id_rsa.pub</span></p>
<p><span style="font-size: larger">都下载到你的本地。</span></p>
<p><span style="font-size: larger">5.重命名公匙文件 #mv id_rsa.pub authorized_keys</span></p>
<p>&nbsp;</p>
<p><span style="font-size: large"><strong><span style="color: #0000ff">四、SSH配置</span></strong></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.打开SecureCRT， 登录到linux，现在还没有配置SSH，而SSH默认是密码认证的方式验证的，所以直接输入用户名密码即可。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.如果你是非root用户登录，请在连接终端下输入 su &#8211; 获得root权限，因为SSH的配置需要有管理员权限。</p>
<p><img alt="" height="56" src="http://www.qingliangcn.com/blog2/blog2/uploads/1(1).jpg" width="345" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 开始编辑ssh的配置文件</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [root@localhostCentos ~]# vim /etc/ssh/sshd_config</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.一次修改配置如下</p>
<p><img alt="" src="http://www.qingliangcn.com/blog2/blog2/uploads/2(1).jpg" /></p>
<p>PermitEmptyPasswords no代表不允许空密码登录</p>
<p>PasswordAuthentication no 代表不采用密码认证方式</p>
<p><img alt="" height="50" src="http://www.qingliangcn.com/blog2/blog2/uploads/3(1).jpg" width="371" /></p>
<p>PubkeyAuthentication yes 表示采用key文件方式认证</p>
<p>AuthorizedKeysFile&nbsp;&nbsp;&nbsp; .ssh/authorized_keys 表示对用用户的公匙文件放置的位置，文件默认相对的是对应用户的主目录。（看到这里我们就明白了为什么我们上面的操作中要建立.ssh目录，要重命名公匙文件了）</p>
<p><img alt="" height="59" src="http://www.qingliangcn.com/blog2/blog2/uploads/4(1).jpg" width="196" /></p>
<p>PermitRootLogin no 表示不允许root直接远程登录（这一部分之后会说明）</p>
<p>重启SSHD服务，你可以通过下面的命令完成。 # /etc/rc.d/init.d/sshd restart 或者 # service sshd restart</p>
<p><strong><span style="font-size: large"><span style="color: #0000ff">五、登录</span></span></strong><br />
	1.&nbsp; 退出当前的所有连接，重新登录Linux主机，记住前面我们已经设置不允许root直接远程，而是用centosadmin这个管理账号来登录。</p>
<p>
	2.SecureCRT提示你需要公匙文件，选择你的公匙文家，如果一切正常，此时会提示你输入你的密匙口令（还记得在哪里设置的吗？），OK！已经进入了。此时你的权限是centosadmin的用户权限，可以试试通过su看看能不能获得root shell。</p>
<p>&nbsp;</p>
<p><strong><span style="color: #0000ff"><span style="font-size: large">六、文件传输</span></span></strong></p>
<p>为了安全我们通常关闭所有不必要的服务，如果不需要频繁的传输大文件，利用SSH来传输文件是个非常安全的选择。需要工具 winscp和putty 的key-gen，为什么又多了一个工具？因为winscp是无法直接使用我们在服务器生成的密匙文件的， 需要使用putty的key-gen将我们现有的密匙文件转化成ppk格式。</p>
<p>打开PuTTYGen，选择load，文件类型选择all files，选择你从服务器上下载的私匙文件，这时会要求你输入密匙口令：</p>
<p><img alt="" height="134" src="http://www.qingliangcn.com/blog2/blog2/uploads/20090712001.jpg" width="226" /></p>
<p>确认密码后弹出</p>
<p><img alt="" height="170" src="http://www.qingliangcn.com/blog2/blog2/uploads/20090712002.jpg" width="323" /></p>
<p>点击确定，点击 save private key，保存ppk文件到你本地（U盘最佳）。</p>
<p>打开WINScp，密匙选择你刚刚保存的ppk文件</p>
<p><img alt="" height="356" src="http://www.qingliangcn.com/blog2/blog2/uploads/20090712003.jpg" width="520" /></p>
<p>登录，再次要求输入密匙口令，输入口令，OK！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qingliangcn.com/2009/07/linux%e4%b9%8b%e8%b7%af-ssh%e7%af%87/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>


