缺省情况下,Solaris 安全 Shell 中未启用基于主机的验证,并且不允许同时使用两种协议。更改这些缺省设置需要管理干预。另外,要端口转发正常工作,也需要管理干预。
以下过程将设置一个公钥系统,其中客户机的公钥用于服务器上的验证。用户还必须创建公钥/私钥对。
在此过程中,术语客户机和本地主机是指用户键入 ssh 命令的计算机。术语服务器和远程主机是指客户机要尝试访问的计算机。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在客户机上,启用基于主机的验证。
在客户机配置文件 /etc/ssh/ssh_config 中,键入以下项:
HostbasedAuthentication yes |
在服务器上,启用基于主机的验证。
在服务器配置文件 /etc/ssh/sshd_config 中,键入相同的项:
HostbasedAuthentication yes |
在服务器上,配置文件以允许将客户机识别为受信任主机。
有关更多信息,请参见 sshd(1M) 手册页中的 FILES 部分。
在服务器上,确保 sshd 守护进程可以访问受信任主机的列表。
在 /etc/ssh/sshd_config 文件中,将 IgnoreRhosts 设置为 no。
# sshd_config IgnoreRhosts no |
确保站点上的 Solaris 安全 Shell 用户在两台主机上都拥有帐户。
执行以下操作之一,以将客户机的公钥放到服务器上。
修改服务器上的 sshd_config 文件,然后指示用户将客户机的公共主机密钥添加到其 ~/.ssh/known_hosts 文件中。
# sshd_config IgnoreUserKnownHosts no |
有关用户说明,请参见如何生成用于 Solaris 安全 Shell 的公钥/私钥对。
将客户机的公钥复制到服务器。
主机密钥存储在 /etc/ssh 目录中。这些密钥通常由 sshd 守护进程在首次引导时生成。
在以下示例中,每台主机同时配置为服务器和客户机。任一主机上的用户都可以启动与另一台主机的 ssh 连接。以下配置可使每台主机同时成为服务器和客户机:
在每台主机上,Solaris 安全 Shell 配置文件都包含以下项:
# /etc/ssh/ssh_config HostBasedAuthentication yes # # /etc/ssh/sshd_config HostBasedAuthentication yes IgnoreRhosts no |
在每台主机上,shosts.equiv 文件都包含对应于另一台主机的项:
# /etc/hosts.equiv on machine2 machine1 |
# /etc/hosts.equiv on machine1 machine2 |
每台主机的公钥位于另一台主机的 /etc/ssh/ssh_known_hosts 文件中:
# /etc/ssh/ssh_known_hosts on machine2 … machine1 |
# /etc/ssh/ssh_known_hosts on machine1 … machine2 |
用户在两台主机上都拥有帐户:
# /etc/passwd on machine1 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh |
# /etc/passwd on machine2 jdoe:x:3111:10:J Doe:/home/jdoe:/bin/sh |
此过程在一台主机与运行 v1 和 v2 的多台主机交互操作时非常有用。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将主机配置为同时使用两种 Solaris 安全 Shell 协议。
编辑 /etc/ssh/sshd_config 文件。
# Protocol 2 Protocol 2,1 |
为用于 v1 的主机密钥提供一个独立文件。
向 /etc/ssh/sshd_config 文件中添加 HostKey 项。
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_rsa1_key |
生成用于 v1 的主机密钥。
# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_rsa1_key -N '' |
表示用于 v1 的 RSA 算法。
表示保存主机密钥的文件。
表示无需口令短语。
重新启动 sshd 守护进程。
# svcadm restart network/ssh:default |
您也可以重新引导系统。
使用端口转发可以将本地端口转发到远程主机。实际上,分配了一个套接字用于侦听本地端的端口。同样,也可以在远程端指定端口。
Solaris 安全 Shell 端口转发必须使用 TCP 连接。Solaris 安全 Shell 不支持使用 UDP 连接进行端口转发。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将远程 Solaris 安全 Shell 服务器配置为允许端口转发。
在 /etc/ssh/sshd_config 文件中,将 AllowTcpForwarding 的值更改为 yes。
# Port forwarding AllowTcpForwarding yes |
remoteHost# svcadm restart network/ssh:default |
有关管理持久性服务的信息,请参见《系统管理指南:基本管理》中的第 14 章 “管理服务(概述)” 和 svcadm(1M) 手册页。
检验是否可以使用端口转发。
remoteHost# /usr/bin/pgrep -lf sshd 1296 ssh -L 2001:remoteHost:23 remoteHost |