OpenSSH 服务器配置使用指南

清风了了 2007-11-28

OpenSSH

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持 SSH 协议的版本 1.3、1.5、和 2。自从 OpenSSH 的版本 2.9 以来,默认的协议是版本 2,该协议默认使用 RSA 钥匙。

1. 为什么使用 SSH?

使用 OpenSSH 工具将会增进你的系统安全性。 所有使用 OpenSSH 工具的通讯,包括口令,都会被加密。 telnet 和 ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进你的系统而对你的系统造成危害。你应该尽可能地使用 OpenSSH 的工具集合来避免这些安全问题。

另一个使用 OpenSSH 的原因是,它自动把 DISPLAY 变量转发给客户机器。换一句话说,如果你在本地机器上运行 X 窗口系统,并且使用 ssh 命令登录到了远程机器上,当你在远程机器上执行一个需要 X 的程序时,它会显示在你的本地机器上。如果你偏爱图形化系统管理工具,却不能够总是亲身访问该服务器,这就会为你的工作大开方便之门。

2. 配置 OpenSSH 服务器

要运行 OpenSSH 服务器,你必须首先确定你安装了正确的 RPM 软件包。openssh-server 软件包是必不可少的,并且它依赖于 openssh 软件包的安装与否。

OpenSSH 守护进程使用 /etc/ssh/sshd_config 配置文件。Red Hat Linux 9 安装的默认配置文件在多数情况下应该足以胜任。如果你想使用没有被默认的 sshd_config 文件提供的方式来配置守护进程,请阅读 sshd 的说明书(man)页来获取能够在配置文件中定义的关键字列表。

要启动 OpenSSH 服务,使用 /sbin/service sshd start 命令。要停止 OpenSSH 服务器,使用 /sbin/service sshd stop 命令。如果你想让守护进程在引导时自动启动,请参阅相关资料来获取关于如何管理服务的信息。

如果你重新安装了 Red Hat Linux 系统,任何在它被重装前使用 OpenSSH 工具连接到这个系统上的客户在它被重装后将会看到下列消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that the RSA host key has just been changed.

重 装后的系统会为自己创建一组新的身份标识钥匙;因此客户会看到 RSA 主机钥匙改变的警告。如果你想保存系统原有的主机钥匙,备份 /etc/ssh/ssh_host*key* 文件,然后在系统重装后恢复它。该过程会保留系统的身份。当客户机在该系统重装后试图连接它,它们就不会看到以上的警告信息。

PS(如果你没有备份,修改客户机的 ~/.ssh/know_hosts把里面有关重装了linux的哪台机器的行删掉. 就可以了.)

3. 配置 OpenSSH 客户

要从客户机连接到 OpenSSH 服务器上,你必须在客户机器上装有 openssh-clients 和 openssh 软件包。

3.1. 使用 ssh 命令

ssh 命令是 rlogin、rsh 和 telnet 命令的安全替换。它允许你在远程机器上登录并在其上执行命令。

使用 ssh 来登录到远程机器和使用 telnet 相似。要登录到一个叫做 penguin.example.net 的远程机器,在 shell 提示下键入下面的命令:

ssh penguin.example.net

第一次使用 ssh 在远程机器上登录时,你会看到和下面相仿的消息:

The authenticity of host penguin.example.net cant be established.

DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.

Are you sure you want to continue connecting (yes/no)?

键入 yes 来继续。这会把该服务器添加到你的已知主机的列表中,如下面的消息所示:

Warning: Permanently added penguin.example.net (RSA) to the list of known hosts.

下一步,你会看到向你询问远程主机口令的提示。在输入口令后,你就会在远程主机的 shell 提示下了。如果你没有指定用户名,你在本地客户机器上登录用的用户名就会被传递给远程机器。如果你想指定不同的用户名,使用下面的命令:

ssh username@penguin.example.net

你还可以使用 ssh -l username penguin.example.net。

ssh 命令可以用来在远程机器上不经 shell 提示登录而执行命令。它的语法格式是: ssh hostname command。譬如,如果你想在远程主机 penguin.example.net 上执行 ls /usr/share/doc 命令,在 shell 提示下键入下面的命令:

ssh penguin.example.net ls /usr/share/doc

在你输入了正确的口令之后, /usr/share/doc 这个远程目录中的内容就会被显示,然后你就会被返回到你的本地 shell 提示下。

相关推荐