Linux提供了多种方式让用户进行远程管理,如Telnet,它的基本应用是提供远程管理,共享远程系统中的资源。Telnet使用户坐在自己的电脑前通过网络进入另一台电脑,并把用户输入的每个字符传递给主机。再将主机输出的每个信息回显在屏幕上,这样的连接可以发生在同一个房间,也可以发生在地球的两端。但Telnet服务在本质上是不安全的,原因在于在Telnet整个通信过程中采用明文传送数据,在当今的网络环境下这样的操作如果发现在Internet上无异于自杀。

  SSH(Secure Shell)则不同,它是以远程联机服务方式操作服务器时的较为安全的解决方案,初由芬兰一家公司开发完成,但由于版权等相关问题,目前大多使用OpenSSH来代替。它可以将所有传输的数据进行加密,这样“中间人”功能方法不太可能成功。而且SSH在传输数据的过程中会对数据进行压缩,这样也可以加快数据的传输速度。总之SSH的功能很好、很强大,正在逐渐取代Telnet,成为远程登录主要选择。

  SSH同Telnet相同采用客户机/服务器的工作方式。目前主要有二个互不兼容的版本,分别是1.x及2.x。而OpenSSH 2.x同时支持1.x及2.x。

  下面将以RHEL 5为例讲述SSH服务在远程登录中的应用:

  在RHEL 5中默认情况下已经安装并已开启SSH,但在使用前好还是检查进程及端口是否工作正常。

  在实验过程中,将用户将在football.example.zqin上通过SSH远程登录到golf.example.zqin上。在讲述配置过程前先介绍几个在SSH中常用的命令:

  ssh [user@]hostname [command]

  远程连接到指定服务器

  ◆ [user@]:远程计算机的用户名,如不输入表示使用root进行连接

  ◆ [command]:连接成功后直接执行的命令

  scp [user@]host:/path [-rpC]

  文件在ssh客户端与服务器端之间复制

  ◆-r:递归

  ◆ -p:保留原文件权限

  ◆ -C:传输中压缩数据

  rsync srcfile host:/path

  在客户端与服务器间同步文件,这个命令是一次性的,如果需要定时执行,要使用crontab。在同步是只从srcfile到host:/path。

  一、通过SSH远程登录

  1:通过ssh命令连接远程计算机,未输入用户名则默认使用root。

  2:如果是第一次连接到远程计算机,由于OpenSSH不知道该计算机所以出现警告提示此处输入yes,OpenSSH会将这台计算机识别标记加入~/.ssh/know_hosts文件中,第二次连接时不会出现警告。

  3:输入远程计算机root用户口令。

  4:已成功连接到远程计算机,此时输入的所有命令将在远程计算机中执行,可通过exit命令退出。

  不知道是OpenSSH有Bug还是其它原因,有时一切配置正常但总无法连接到远程计算机,此时可将客户端~/.ssh里面内容删除后再试。