跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
19. 使用 Oracle Solaris 安全 Shell(任务)
Oracle Solaris 安全 Shell 和 OpenSSH 项目
配置 Oracle Solaris 安全 Shell(任务列表)
使用 Oracle Solaris 安全 Shell(任务列表)
使用 Oracle Solaris 安全 Shell(任务)
如何将 ssh-agent 命令设置为在 CDE 中自动运行
缺省情况下,安全 Shell 中未启用基于主机的验证,并且不允许同时使用两种协议。更改这些缺省设置需要管理干预。另外,要使端口转发正常工作,也需要管理干预。
以下过程设置一个公钥系统,其中使用客户机的公钥进行服务器上的验证。用户还必须创建一个公钥/私钥对。
在此过程中,术语客户机和本地主机是指用户键入 ssh 命令的计算机。术语服务器和远程主机是指客户机尝试访问的计算机。
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
在客户机配置文件 /etc/ssh/ssh_config 中,键入以下项:
HostbasedAuthentication yes
有关该文件的语法,请参见 ssh_config(4) 手册页
在服务器验证文件 /etc/ssh/sshd_config 中,键入相同的项:
HostbasedAuthentication yes
有关该文件的语法,请参见 sshd_config(4) 手册页
有关更多信息,请参见 sshd(1M) 手册页的 FILES 部分。
client-host
client-host
在 /etc/ssh/sshd_config 文件中,将 IgnoreRhosts 设置为 no。
## sshd_config IgnoreRhosts no
## sshd_config IgnoreUserKnownHosts no
有关用户说明,请参见如何生成用于安全 Shell 的公钥/私钥对。
主机密钥存储在 /etc/ssh 目录中。这些密钥通常由 sshd 守护进程在首次引导时生成。
在客户机上,在一行中键入以下命令(不带反斜杠)。
# cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'
复制该文件后,将显示 "Host key copied"(主机密钥已复制)消息。
/etc/ssh/ssh_known_hosts 文件中的每一行均由空格分隔的字段组成:
hostnames algorithm-name publickey comment
## /etc/ssh/ssh_known_hosts File RemoteHost <copied entry>
示例 19-1 设置基于主机的验证
在以下示例中,每台主机同时配置为服务器和客户机。任一主机上的用户都可以启动与另一台主机的 ssh 连接。以下配置可使每台主机同时成为服务器和客户机:
在每台主机上,安全 Shell 配置文件都包含以下项:
## /etc/ssh/ssh_config HostBasedAuthentication yes # ## /etc/ssh/sshd_config HostBasedAuthentication yes IgnoreRhosts no
在每台主机上,shosts.equiv 文件都包含对应于另一台主机的项:
## /etc/ssh/shosts.equiv on machine2 machine1
## /etc/ssh/shosts.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 的多台主机交互操作时,此过程非常有用。
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
编辑 /etc/ssh/sshd_config 文件。
# Protocol 2 Protocol 2,1
向 /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
# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_rsa1_key -N ''
表示用于 v1 的 RSA 算法。
表示保存主机密钥的文件。
表示无需口令短语。
# svcadm restart network/ssh:default
您也可以重新引导系统。
使用端口转发可以将本地端口转发到远程主机。实际上,分配了一个套接字用于侦听本地端的端口。同样,也可以在远程端指定端口。
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
在 /etc/ssh/sshd_config 文件中,将 AllowTcpForwarding 的值更改为 yes。
# Port forwarding AllowTcpForwarding yes
remoteHost# svcadm restart network/ssh:default
有关管理持久性服务的信息,请参见《系统管理指南:基本管理》中的第 18 章 "管理服务(概述)"和 svcadm(1M) 手册页。
remoteHost# /usr/bin/pgrep -lf sshd 1296 ssh -L 2001:remoteHost:23 remoteHost