4.6. 使用 SSH

SGD 可以使用 SSH 在 SGD 服务器和应用服务器之前提供安全连接。SSH 具有以下优势:

本节包括以下主题:

4.6.1. SSH 支持

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

4.6.2. 配置 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 user@host

[无]

-X

ssh -X -l user@host

/usr/ssh -X

[无]

/usr/ssh -X -l user@host

/usr/ssh -X

-p port

/usr/ssh -p port -l user@host

4.6.2.1. 如何设置全局 SSH 客户端选项

确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 停止 SGD 服务器。

  3. 设置 TTASSHCLIENT 环境变量。

    包括 SSH 客户端程序的完整路径以及任何所需的命令行参数。例如:

    # TTASSHCLIENT="/usr/local/bin/ssh -q -X"; export TTASSHCLIENT
    注意

    如果仅希望为 SSH 客户端设置命令行参数,则必须包括 SSH 客户端程序的完整路径,即使 SSH 程序位于 SGD 可以检测到它的位置也是如此。

  4. 重新启动 SGD 服务器。

4.6.2.2. 如何设置应用程序 SSH 客户端选项

  1. 在管理控制台中,转至 "Applications"(应用程序)选项卡并选择应用程序。

  2. 转至 "Launch"(启动)选项卡。

  3. 确保为 "Connection Method"(连接方法)选择 "ssh" 选项。

  4. 在 "SSH Arguments"(SSH 参数) 字段中,键入要用于应用程序的 SSH 参数。

  5. 单击 "Save"(保存)。

4.6.3. 为 X 应用程序启用 X11 转发

要使用 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 连接仅用于应用程序验证和启动应用程序。

4.6.3.1. 如何启用 X11 转发

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 配置 SSH 守护进程。

    编辑 sshd_config 文件并添加以下行:

    X11Forwarding yes

  3. 配置 SSH 客户端。

    执行以下任一操作:

    • 编辑 ssh_config 文件并包含以下行:

      ForwardAgent yes

      ForwardX11 yes

    • 将 SSH 客户端配置为使用 -X 命令行参数。

      有关详细信息,请参见第 4.6.2 节 “配置 SSH 客户端”

  4. 重新启动 SSH 守护进程。

4.6.4. 使用 SSH 和 X 安全扩展

SGD 支持 X 安全扩展。X 安全扩展只能与支持 -Y 选项的 SSH 版本一起使用。对于 OpenSSH,需要版本 3.8 或更高版本。您可以通过配置应用程序对象的各个应用程序来启用 X 安全扩展,如下所述:

4.6.4.1. 如何启用 X 安全扩展

  1. 在管理控制台中,转至 "Applications"(应用程序)选项卡并选择应用程序。

  2. 转至 "Launch"(启动)选项卡。

  3. 确保为 "Connection Method"(连接方法)选择 "ssh" 选项。

  4. 选中 "X Security Extension"(X 安全扩展)复选框。

  5. 单击 "Save"(保存)。

4.6.5. 使用 SSH 和 X 授权

如果启用 X 授权后 SSH 连接失败,您可能必须在仅 IPv4 模式中运行 SSH 守护进程,因为 SGD 可能不支持您服务器上使用的 X 安全扩展。您可以通过编辑系统 SSH 配置文件来启用 IP 版本 4 模式。

例如,在 Oracle Linux 上编辑 /etc/ssh/sshd_config 文件并添加以下行:

AddressFamily inet

您必须在进行此更改后重新启动 SSH 守护进程。

4.6.6. 使用高级 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 服务器免遭未经授权的访问。

4.6.6.1. 客户端密钥的已知限制

如果使用 SSH 客户端密钥功能,则当用户启动应用程序时,系统可能会提示用户输入用户名和密码。用户收到提示的原因是,SGD 需要知道要用于 SSH 连接的用户名。尽管也提示用户输入密码,但实际上并不使用密码。仅当用户在应用服务器的密码缓存中没有相应项或者密码缓存已禁用时,系统才会提示用户输入用户名和密码。如果用户收到提示,他们只需要提供用户名。密码字段可以留空。