Ubuntu 服务器指南的这部分内容介绍一个强大的远程控制网络计算机和在它们之间传输数据的工具集 OpenSSH。您也可以学到一些 OpenSSH 服务器应用程序的配置以及如何在您 Ubuntu 系统修改它们。
OpenSSH 是Secure Shell (SSH) 协议工具集中的一个自由可用的版本,用以远程控制一台计算机或在计算机之间传输文件。完成这些功能的传统工具,如 telnet 或 rcp 等,是不安全的,它们在使用时用明文来传输用户的密码。OpenSSH 提供一个服务器守护程序和客户端工具来保障安全、加密的远程控制和文件传输操作,以有效地取代传统的工具。
OpenSSH 服务器组组件 sshd 持续监听来自任何客户端工具的连接请求。当一个连接请求发生时,sshd 根据客户端连接的类型来设置当前连接。例如,如果远程计算机是通过 ssh 客户端应用程序来连接的话,OpenSSH 服务器将在认证之后设置一个远程控制会话。如果一个远程用户通过 scp 来连接 OpenSSH 服务器,OpenSSH 服务器将在认证之后开始服务器和客户机之间的安全文件拷贝。OpenSSH 可以支持多种认证模式,包括纯密码、公钥以及Kerberos 票据。
OpenSSH 客户端及服务器应用程序的安装是简单的。要在您 Ubuntu 系统中安装 OpenSSH 客户端应用程序,可以在终端提示符后使用以下命令:
sudo apt-get install openssh-client
要安装 OpenSSH 服务器应用程序及相关的支持文件,可以在终端提示符后使用以下命令:
sudo apt-get install openssh-server
您可以通过编辑 /etc/ssh/sshd_config
文件来配置 OpenSSH 服务器应用程序的缺省过程。关于该文件中使用的配置语句信息,您可以在终端提示符后运行下列命令来查阅相应的手册页:
man sshd_config
在 sshd 配置文件中有许多语句来控制那些诸如通信设置和认证模式。下面是一个通过编辑 /etc/ssh/ssh_config
文件来改变配置语句的例子。
在编辑配置文件之前,您应该生成一个原始文件的拷贝并对其写保护,以便您可以参考原始文件并在必要时重用它。
拷贝 /etc/ssh/sshd_config
文件并对其写保护可以通过在终端提示符后运行下列命令:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original
以下是您可能更改配置语句的范例:
要设置您 OpenSSH 在 TCP 2222 端口而不是缺省的 TCP 20 端口监听,可以如下使用改变 Port 语句:
Port 2222
要让 sshd 允许基于公钥登录证书,可以简单添加或修改该行语句:
PubkeyAuthentication yes
到 /etc/ssh/sshd_config
文件中。如果已经存在,确保该行语句没有被注释。
要使您的 OpenSSH 服务器显示 /etc/issue.net
文件的内容以作为预登录 Banner,只需简单地将下行添加或修改:
Banner /etc/issue.net
到 /etc/ssh/sshd_config
文件中即可。
在修改 /etc/ssh/sshd_config
文件之后,保存该文件并重启 sshd 服务器应用程序以使之生效。可以在终端提示符后使用下列命令:
sudo /etc/init.d/ssh restart
许多其他的 sshd 配置语句可以使服务器应用程序按您的要求运行。然而,给您一个忠告,如果您访问服务器的唯一方法就是使用 ssh,而且您在通过 /etc/ssh/sshd_config
文件来配置 sshd 时犯了一个错误,那么在重启该服务之后您可能会发现您被锁在服务器外面了,或者是 sshd 服务在处理一个不正确的配置语句时拒绝启用。因此当在远程服务器上编辑该文件时要格外的小心。