SGD 可以使用 SSH 在 SGD 服务器和应用服务器之前提供安全连接。SSH 具有以下优势:
使用 SSH 在应用服务器和 SGD 服务器之间进行的所有通信均已加密,包括 X 协议(如果运行 X 应用程序)
在通过网络进行传送之前,始终对用户名和密码进行加密
本节包括以下主题:
SGD 使用 SSH 版本 2 或更高版本。由于 SSH 版本兼容性问题,请在所有 SGD 主机和应用服务器上使用相同主版本的 SSH,可以是版本 2 或版本 3。
如果 SSH 安装在以下一个目录中,则 SGD 可以自动检测到 SGD 主机上已安装 SSH:
/usr/local/bin
/usr/bin
/usr/sbin
/usr/lbin
/bin
/sbin
如果要从其他位置运行 SSH 客户端,或者要为该客户端指定特定的命令行参数,请参见第 4.6.2 节 “配置 SSH 客户端”以了解详细信息。
要使用 SSH 连接至应用服务器,必须符合以下条件:
必须在 SGD 主机和应用服务器上安装 SSH
应用程序对象的 "Connection Method"(连接方法)属性必须为 ssh
将 SSH 与 SGD 配合使用时,您可以配置 SSH 客户端使用的命令行参数。可以全局配置和/或针对各个应用程序配置这些参数。
您可以通过设置 TTASSHCLIENT
环境变量,为 SSH 客户端配置 全局选项,请参见第 4.6.2.1 节 “如何设置全局 SSH 客户端选项”以了解详细信息。在以下情况下,请使用全局 SSH 客户端配置:
SSH 未安装在其中一个默认位置
要对所有应用程序使用相同的 SSH 客户端命令行参数
您可以通过配置应用程序对象的 "SSH Arguments"(SSH 参数)属性,来为 SSH 客户端配置应用程序选项,请参见第 4.6.2.2 节 “如何设置应用程序 SSH 客户端选项”以了解详细信息。
您可以结合使用全局和应用程序 SSH 客户端配置,以设置 SSH 客户端的路径以及设置命令行参数。
如果这样做,则会忽略所有全局命令行参数。
下表显示了全局和应用程序配置对使用的 ssh 命令的影响。
全局配置 | 应用程序配置 | 使用的 SSH 命令 |
---|---|---|
[无] | [无] |
ssh -l |
[无] | -X |
ssh -X -l |
/usr/ssh -X | [无] |
/usr/ssh -X -l |
/usr/ssh -X |
-p |
/usr/ssh -p |
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
在 SGD 主机上,以超级用户 (root) 身份登录。
停止 SGD 服务器。
设置 TTASSHCLIENT
环境变量。
包括 SSH 客户端程序的完整路径以及任何所需的命令行参数。例如:
# TTASSHCLIENT="/usr/local/bin/ssh -q -X"; export TTASSHCLIENT
如果仅希望为 SSH 客户端设置命令行参数,则必须包括 SSH 客户端程序的完整路径,即使 SSH 程序位于 SGD 可以检测到它的位置也是如此。
重新启动 SGD 服务器。
要使用 SSH 连接显示使用 SGD 的 X 应用程序,必须启用 X11 转发。请参见第 4.6.3.1 节 “如何启用 X11 转发”。
作为后备,您可以在 X 应用程序对象上启用 "Allow SSH Downgrade"(允许 SSH 降级)(--allowsshdowngrade
) 属性。如果启用了此属性,而未运行或未配置 X11 转发,则 SGD 会尝试使用不安全的常规 X11 连接显示应用程序。根据您的配置,系统可能会提示用户接受降级。下表显示了启用 "Allow SSH Downgrade"(允许 SSH 降级)属性的影响。
已配置 X11 转发 | 正在运行 X11 转发 | 已启用 "Allow SSH Downgrade"(允许 SSH 降级)属性 | 用户启动应用程序时出现什么情况 |
---|---|---|---|
是 | 是 | 是 | 应用程序启动,使用 SSH 连接 |
是 | 是 | 否 | 应用程序启动,使用 SSH 连接 |
是 | 否 | 是 | 提示用户允许降级至 X11 连接 |
是 | 否 | 否 | 应用程序不启动 |
否 | 不适用 | 否 | 应用程序不启动 |
否 | 不适用 | 是 | 应用程序启动,使用 X11 连接 |
如果使用 X11 连接,则 SGD 以正常方式设置 DISPLAY
变量和 X 授权 cookie。SSH 连接仅用于应用程序验证和启动应用程序。
在 SGD 主机上,以超级用户 (root) 身份登录。
配置 SSH 守护进程。
编辑 sshd_config
文件并添加以下行:
X11Forwarding yes
配置 SSH 客户端。
执行以下任一操作:
编辑 ssh_config
文件并包含以下行:
ForwardAgent yes
ForwardX11 yes
将 SSH 客户端配置为使用 -X 命令行参数。
有关详细信息,请参见第 4.6.2 节 “配置 SSH 客户端”。
重新启动 SSH 守护进程。
SGD 支持 X 安全扩展。X 安全扩展只能与支持 -Y 选项的 SSH 版本一起使用。对于 OpenSSH,需要版本 3.8 或更高版本。您可以通过配置应用程序对象的各个应用程序来启用 X 安全扩展,如下所述:
如果启用 X 授权后 SSH 连接失败,您可能必须在仅 IPv4 模式中运行 SSH 守护进程,因为 SGD 可能不支持您服务器上使用的 X 安全扩展。您可以通过编辑系统 SSH 配置文件来启用 IP 版本 4 模式。
例如,在 Oracle Linux 上编辑 /etc/ssh/sshd_config
文件并添加以下行:
AddressFamily inet
您必须在进行此更改后重新启动 SSH 守护进程。
某些 SSH 功能(例如客户端密钥)要求 SSH 客户端进程以特权用户的身份运行。但是,为了安全起见,SGD 服务器进程和 SSH 客户端进程以非特权用户的身份运行。
要使用高级 SSH 功能,必须将 SGD ttasshhelper 应用程序设置为 setuid root 进程。您可以通过在阵列中的每台 SGD 服务器上以超级用户 (root) 身份执行以下命令来完成此操作:
# chown root /opt/tarantella/bin/bin/ttasshhelper # chmod 4510 /opt/tarantella/bin/bin/ttasshhelper
如果进行这些更改,则必须保护您的 SGD 服务器免遭未经授权的访问。