当前位置: 首页 > 图文教程 > 网络编程 > PHP > OpenSSH可实现一次性自动管理多台服务器

PHP
用PHP实现ODBC数据分页显示一例
用DBSQL类加快开发MySQL数据库程序的速度
多php服务器实现多session并发运行
多核编程中的负载平衡难题
将Oracle内置的安全特性用于php
在PHP中使用ASP.NET AJAX
php中计算时间差的几种方法
PHP 5.0对象模型深度探索之类的静态成员
让PHP管理小型的邮件列表
MagickWand for PHP linux INSTALL 安装
PHP中数组元素升序、降序及重新排序的函数
PHP后门的隐藏技巧测试报告
配置Apache 1.3或者Apache 2.0服务器的5个技巧
用Suhosin加强PHP脚本语言安全性
PHP动态网页编程常用技巧四则
解答:如何使用PHP开发高效的WEB系统
PHP实现上传文件生成小图加文字的实例
PHP实现定时生成HTML网站首页
教你用PHP写MySQL数据库的用户认证系统
加速动态网站 MySQL索引分析和优化

PHP 中的 OpenSSH可实现一次性自动管理多台服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 25 ::
收藏到网摘: n/a

Linux系统管理员都清楚“安全外壳”协议是软件工具包中最便利也是最关键的工具之一。本文将向大家介绍一个被称作OpenSSH的开源SSH是如何工作的,以及它对于Linux系统环境的重要意义。

SSH可以通过网络管理外壳或Perl脚本安全快速实现一次性自动管理多台服务器。当然,其他网络外壳工具例如RSH,出现的时间比SSH更久。但SSH为了文件在网络上安全传输,加入了强大的加密和数据压缩功能,大部分流行的SSH甚至还提供了SFTP和SCP功能。在众多SSH中,最流行的就是由OpenBSD社团主持开发和维护的OpenSSH项目。OpenSSH可以用在目前几乎所有的操作系统平台上,包括微软Windows。

SSH的作用

SSH通过强大的加密功能保护完整的远程外壳线程不被黑客和恶意软件入侵。端到端的保护能力可以从线程开始到结束提供完整的保护,虽然受信主机认证方案以及系统间的预先密钥交换有助于提高安全性,但是OpenSSH并不需要证书或者预先密钥交换来确立一个加密的远程线程。

另外,SSH可以通过SFTP功能使得类似FTP的文件传输线程具有加密能力,同时可以让用户的密码以及用户名以加密方式传输,而非明文方式传输。对于限制更多的情况,如单一文件传输操作,SCP同样可以实现安全和方便的传输能力,它会通过一个加密的文件拷贝命令实现文件在网络上的传输。

使用和配置Linux客户端

将OpenSSH安装到主流Linux系统中非常简单,只需要一个简单的包管理命令。比如要在Debian GNU/Linux中安装OpenSSH,只需要以root身份登录,并在命令行方式输入apt-get install ssh。同样,在Fedora Core Linux中,也只需要以root身份登录,并输入yum install ssh即可。不过一般情况下,这两个命令行也不需要,因为Debian和Fedora Core中,已经默认安装了OpenSSH。对于任何Linux系统,如果你想查看它是否安装了OpenSSH,只需要简单地输入ssh即可。回车后,如果系统已经安装了OpenSSH,则会返回有关OpenSSH的完整使用信息。

要使用OpenSSH客户端通过命令行方式接入运行OpenSSH服务器端的系统,一般只需要输入ssh host,这里的host是指目标系统的主机名。如果网络没有DNS解析,或者主机名没有在/etc/hosts文件中列出,那么则需要直接输入对方主机的IP地址,比如ssh 192.168.0.1。

OpenSSH系统范围的配置文件一般位于/etc/ssh目录下。OpenSSH客户端的主要配置文件为/etc/ssh/ssh_config 。大部分版本的OpenSSH都在配置文件中带有详细的注释。在一些发行量较大的Linux系统中,比如Debian,你可以通过命令行man ssh_config来获取更多有关OpenSSH客户端的配置信息。

安全方面的一个主要配置项目就是ForwardX11,将这个选项设置为“no”,可以防止OpenSSH客户端自动向网络发送X Window System信息,否则就算没有在SSH链接上使用X Windows,有关信息还是有可能被发送。在这个选项中,你可以通过-X命令行参数来指定某个特定的SSH连接可以发送X Window系统信息。etc/ssh/ssh_config文件中的其它配置可以帮助你实现或者加强网络安全策略,满足某些特定的安全需求。

基于Windows的SSH客户端

Windows系统下的SSH客户端相当多,其中某些属于商业化软件,其余则是免费软件或共享软件,当然也有OpenSSH这样的开放源代码软件。虽然其中有些软件属于Unix模拟器外壳的一部分,仍然是命令行方式的客户端,但是大部分都已经配合Windows系统开发出了图形界面。在这些带有图形界面的免费软件中,WinSCP支持SCP 和 SFTP,PuTTY支持SSH 外壳。在看过上面有关Linux下OpenSSH客户端的使用方法后,你会发现带有图形界面的WinSCP和PuTTY在配置和使用上都方便易懂了许多。Windows下的OpenSSH,也被称作OpenSSH for Windows ,同样支持端口设定。

在Linux下使用和配置OpenSSH服务器

一般情况下,你的Linux系统上可能已经运行了OpenSSH服务器端。在Debian GNU/Linux 系统中,OpenSSH服务器端可以通过以下命令行方式重新启动: /etc/init.d/ssh restart。将命令行中的“restart” 改为 “start” 或 “stop”,就可以实现启动和停止OpenSSH服务器了。在Fedora Core Linux系统中,命令方式也是一样,只不过是将上面的“ssh”改为了“sshd”。

与OpenSSH客户端配置文件类似,OpenSSH服务器端的配置文件一般为/etc/ssh/sshd_config,它的格式与/etc/ssh/ssh_config基本一样,但是其中的选项是不同的,配置文件的细节可以通过man sshd_config命令查看。一般情况下,应该将UsePrivilegeSeparation和IgnoreRhosts选项设置为“yes”,将PermitRootLogin和PermitEmptyPasswords设置为“no”。与在OpenSSH客户端一样,如果允许在SSH连接上发送Windows系统信息,将导致轻微的安全风险,因此如果没有必要,不必激活该选项。同样,在服务器端也应该将X11Forwarding设置为“no”。

对于具备安全意识的Linux用户,更应该正确设置以上几个Ope