﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-Scripts-文章分类-Tcl/Tk</title><link>http://www.cnitblog.com/Scripts/category/3292.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 09:39:01 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 09:39:01 GMT</pubDate><ttl>60</ttl><item><title>利用SSH作为远程管理服务器的辅助手段</title><link>http://www.cnitblog.com/Scripts/articles/13452.html</link><dc:creator>Scripts</dc:creator><author>Scripts</author><pubDate>Mon, 10 Jul 2006 04:51:00 GMT</pubDate><guid>http://www.cnitblog.com/Scripts/articles/13452.html</guid><wfw:comment>http://www.cnitblog.com/Scripts/comments/13452.html</wfw:comment><comments>http://www.cnitblog.com/Scripts/articles/13452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Scripts/comments/commentRss/13452.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Scripts/services/trackbacks/13452.html</trackback:ping><description><![CDATA[<h3>前言</h3>
服务器的管理一般都采用远程终端的方式。由于远程终端存在着只能同时接入两个连接，以及在连接中断后无法恢复的缺点，导致有时由于超出最大连接数的原因而只能用重起服务器的方式解决，造成服务的中断。同时由于远程终端管理是以 GUI 方式进行管理的，不便于进行批量布署软件或批量更改设置之类的工作。
<p>SSH 是 UNIX 的标准远程管理方式，已有在 WIN32 下版本。采用 SSH 可以对中断的远程连接进行复位。同时可以在客户端进行批量管理（如更新口令，调整安全策略，布署软件等），提高工作效率。以下便是具体实施方式简介。 </p>
<p>&#160;</p>
<h3>软件安装与设置</h3>
要使用 SSH 进行远程管理，先要在服务器端安装 SSH 服务端软件。在 UNIX 环境下， SSH 是标准的服务器管理方式，只要在配置文件中启用即可。以 Linux 为例，在安装系统软件时就要选择 SSH 。在配置 SSH 时，注意将 PublicKey 认证做为必须方式。
<p>在 WINDOWS 环境下，目前已有 OpenSSH Vshell FreeSSHD WinSSHD 等 SSH 实现，可以任选其一。本文以 Vshell 为例进行说明。 </p>
<p>Vshell 的安装同大多数软件包一样，双击 SETUP.EXE ，一直点下一步即可。 </p>
<p>会在桌面及控制面板中增加 VSHELL 图标。双击后，在第一次使用前，会提示要注册，填入注册信息后，出现设置窗口，注意要将其中的认证方式中的 PublicKey 选项打勾。这样以后可以只通过公钥认证就可以了，不用再输入口令了。 </p>
<p>&#160;</p>
<h3>客户端配置</h3>
在服务器安装完软件后，下一步是要在客户端安装 SSH 客户端程序及生成密钥。一般人工进行服务器管理，建议采用 PUTTY 进行远程控制。如果要批量进行布署，建议采用 CYGWIN 中的 SSH 做为客户端。
<p>为了加强登陆的安全性，可以用 ssh-keygen 生成密钥。将生成的公钥上传到服务器上，如果是用 VSHELL 的就上传到 VSHELL 安装目录下的 PublicKeys/username 目录下。如果是 UNIX ，就上传到要登陆的帐户主目录下的 .ssh 目录下。以后登陆服务器就不需要口令了。 </p>
<p>&#160;</p>
<h3>手工管理</h3>
用 PUTTY 登陆到服务器上后，会弹出一个 CONSOLE 控制台，可以用 DOS 命令进行服务器管理。例如查看当前登陆的用户： quser user 等。
<p>&#160;</p>
<h3>自动化管理</h3>
借用 SSH 通道，我们可以自动化完成一些需要手动完成的工作，如查看服务器运行的进程，更改用户权限，安装布署软件等等。以下以一个自动完成用户口令更新的脚本为例，说明如何进行自动化管理。
<p>&#160;</p>
<h3><a href=https://opensvn.csie.org/CarlMax/ target=_blank>CHRMTPWD</a> 简介</h3>
CHRMTPWD 是用来批量进行远程服务器用户口令更新的一个脚本，使用的编写语言是 TCL 加上 EXPECT 扩展包。它通过调用 CYGWIN 中的 SSH 程序，连接到指定的服务器上，完成指定的命令。
<p>&#160;</p>
<h3>CHRMTPWD 使用说明</h3>
双击 CHRMTPWD.EXE 安装软件包，安装后不需要再安装 CYGWIN ， SSH 和 TCL/EXPECT 等。
<p>1. 将登陆服务器用的私钥拷贝到 chrmtpw/bin 目录下。<br>2. 编辑 chrmtpwd/bin 目录下的 chrmtpwd.conf 文件，更改相关设置。<br>3. 编辑 chrmtpwd/bin 目录下的远程服务器列表(缺省为 hosts.txt)，要求首列 必须是服务器 IP 地址，同一服务器的上的多个 IP 地址，用 / 分隔。但只用到首 IP。<br>4. 运行 chrmtpwd.cmd，更新服务器口令。<br>5. 运行完成后，会弹出窗口显示已更新的服务器口令列表。<br>6. 检查日志文件 ( 缺省设为 chrmtpwd.log )，对未能更新的服务器进行手工处理。 </p>
<p>&#160;</p>
<h3>总结</h3>
通过以上介绍，可以看出利用 SSH 进行远程服务器管理能大大增加安全性，同时也能提高我们管理服务器的效率，为以后大规模的服务器集群化管理的方式提供了一个可以采用的手段。 
 <img src ="http://www.cnitblog.com/Scripts/aggbug/13452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Scripts/" target="_blank">Scripts</a> 2006-07-10 12:51 <a href="http://www.cnitblog.com/Scripts/articles/13452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>