17.2. 远程连接和断开连接


有两种方法可以连接到远程容器。如果您已经运行 Red Hat Fuse 命令 shell,您必须调用 console 命令来连接到远程容器。或者,您可以在命令行中直接运行实用程序来连接到远程容器。

17.2.1. 从远程容器连接到独立容器

17.2.1.1. 概述

任何容器的命令控制台都可用于访问远程容器。使用 SSH 时,本地容器的控制台作为远程容器的命令控制台连接到远程容器,并作为命令控制台连接。

17.2.1.2. 使用 ssh:ssh console 命令

您可以使用 ssh:ssh console 命令连接到远程容器的控制台。

ssh:ssh 命令语法

ssh:ssh -l username -P password -p port hostname
Copy to Clipboard Toggle word wrap

-l
用于连接到远程容器的用户名。使用具有 admin 特权的有效 JAAS 登录凭证。
-P
用于连接到远程容器的密码。
-p
用于访问所需容器远程控制台的 SSH 端口。默认值为 8101。有关更改端口号的详情,请查看 第 17.1.2 节 “配置独立容器以进行远程访问”
hostname
运行远程容器的机器的主机名。有关更改主机名的详情,请查看 第 17.1.2 节 “配置独立容器以进行远程访问”
警告

我们建议您在 etc/users.properties 文件中自定义用户名和密码。

注意

如果您的远程容器部署在 用于 SPARC 实例的 Oracle VM Server 上,则默认的 SSH 端口值 8101 已被逻辑卷管理器守护进程占用。在这种情况下,您需要重新配置容器的 SSH 端口,如 第 17.1.2 节 “配置独立容器以进行远程访问” 所述。

要确认您已连接到正确的容器,请在 Karaf 控制台提示符处键入 shell:info,这将返回有关当前连接实例的信息。

17.2.1.3. 断开与远程控制台的连接

要断开与远程控制台的连接,请在提示符后输入 logout 或按 Ctrl+D

您将与远程容器断开连接,控制台将再次管理本地容器。

17.2.2. 使用客户端命令行实用程序连接到容器

17.2.2.1. 使用远程客户端

远程客户端允许您安全地连接到远程 Red Hat Fuse 容器,而无需在本地启动完整的 Fuse 容器。

例如,要快速连接到在同一台机器上以服务器模式运行的 Fuse 实例,请打开命令提示符并运行 client[.bat] 脚本(位于 InstallDir/bin 目录中),如下所示:

client
Copy to Clipboard Toggle word wrap

通常,您可以提供一个主机名、端口、用户名和密码来连接远程实例。如果您在更大的脚本中使用客户端,例如在测试套件中,您可以附加控制台命令,如下所示:

client -a 8101 -h hostname -u username -p password shell:info
Copy to Clipboard Toggle word wrap

或者,如果您省略 -p 选项,会提示您输入密码。

对于独立容器,请使用具有 admin 特权的任何有效的 JAAS 用户凭据。

要显示客户端的可用选项,请输入:

client --help
Copy to Clipboard Toggle word wrap

Karaf 客户端帮助

Apache Felix Karaf client
  -a [port]     specify the port to connect to
  -h [host]     specify the host to connect to
  -u [user]     specify the user name
  -p [password] specify the password
  --help        shows this help message
  -v            raise verbosity
  -r [attempts] retry connection establishment (up to attempts times)
  -d [delay]    intra-retry delay (defaults to 2 seconds)
  [commands]    commands to run
If no commands are specified, the client will be put in an interactive mode
Copy to Clipboard Toggle word wrap

17.2.2.2. 远程客户端默认凭证

您可能会意外地发现您可以使用 bin/client 登录 Karaf 容器,而无需提供任何凭据。这是因为远程客户端程序已预先配置为使用默认凭证。如果没有指定凭证,远程客户端会自动尝试使用以下默认凭证(按顺序):

  • 默认 SSH 密钥 criu-criutries,以使用默认的 Apache Karaf SSH 密钥进行登录。在 etc/keys.properties 文件中默认注释掉允许此登录的对应配置条目。
  • 使用admin / admin组合使用用户名和密码登录的默认用户名/密码凭证 。在 etc/users.properties 文件中默认注释掉允许此登录的对应配置条目。

因此,如果您在 Karaf 容器中创建新用户,只需在 users.properties 中取消注释默认的 admin / admin 凭据,您会发现 bin/client 实用程序可以在不提供凭证的情况下登录。

重要

为安全起见,Fuse 在首次安装 Karaf 容器时禁用了默认凭据(通过注释)。但是,如果您简单地取消注释这些默认凭证,而不更改 默认密码或 SSH 公钥,您将在 Karaf 容器中打开一个安全漏洞。不得 在生产环境中执行此操作。如果发现,您可以在不提供凭证的情况下使用 bin/client 登录 容器,这表明您的容器不安全,您必须执行相应的步骤来在生产环境中修复此问题

17.2.2.3. 断开与远程客户端控制台的连接

如果您使用远程客户端打开远程控制台,而不是使用它传递命令,则需要与其断开连接。要断开与远程客户端的控制台的连接,请在提示符后输入 logout 或按 Ctrl-D

客户端将断开连接并退出。

17.2.3. 使用 SSH 命令行工具连接到容器

17.2.3.1. 概述

您还可以使用 ssh 命令行工具(类似 UNIX 的操作系统的标准实用程序)登录到红帽 Fuse 容器,其中身份验证机制基于公钥加密(必须首先在容器中安装公钥)。例如,如果容器被配置为侦听 TCP 端口 8101,您可以按如下方式登录:

ssh -p 8101 jdoe@localhost
Copy to Clipboard Toggle word wrap
重要

目前仅在独立容器上支持基于密钥的登录,不支持 Fabric 容器。

17.2.3.2. 先决条件

要使用基于密钥的 SSH 登录,必须满足以下先决条件:

17.2.3.3. 默认密钥位置

ssh 命令会在默认密钥位置自动查找私钥。建议您在默认位置安装密钥,因为它会显式指定位置的问题。

在 *NIX 操作系统中,RSA 密钥对的默认位置为:

~/.ssh/id_rsa
~/.ssh/id_rsa.pub
Copy to Clipboard Toggle word wrap

在 Windows 操作系统中,RSA 密钥对的默认位置是:

C:\Documents and Settings\Username\.ssh\id_rsa
C:\Documents and Settings\Username\.ssh\id_rsa.pub
Copy to Clipboard Toggle word wrap
注意

Red Hat Fuse 仅支持 RSA 密钥。DSA 密钥 不起作用

17.2.3.4. 创建新的 SSH 密钥对

使用 ssh-keygen 工具生成 RSA 密钥对。打开新命令提示符并输入以下命令:

ssh-keygen -t rsa -b 2048
Copy to Clipboard Toggle word wrap

前面的命令生成 RSA 密钥,密钥长度为 2048 位。然后,系统会提示您为密钥对指定文件名:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/Username/.ssh/id_rsa):
Copy to Clipboard Toggle word wrap

键入 return 将密钥对保存到默认位置。然后会提示您输入密码短语:

Enter passphrase (empty for no passphrase):
Copy to Clipboard Toggle word wrap

您可以选择在此处输入 pass phrase,或者键入 return 两次以选择 no pass phrase。

注意

如果您要使用相同的密钥对来运行 Fabric 控制台命令,建议您不要选择 不通过短语,因为 Fabric 不支持使用加密的私钥。

17.2.3.5. 在容器中安装 SSH 公钥

要使用 SSH 密钥对登录到红帽 JBoss Fuse 容器,您必须在 INSTALL_DIR/etc/keys.properties 文件中创建新用户条目,在容器中安装 SSH 公钥。此文件中的每个用户条目都出现在一行中,格式为:

Username=PublicKey,Role1,Role2,...
Copy to Clipboard Toggle word wrap

例如,如果您的公钥文件 ~/.ssh/id_rsa.pub 具有以下内容:

ssh-rsa AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7
gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnfqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCX
YFCPFSMLzLKSuYKi64QL8Fgc9QAAAnEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6Ewo
FhO3zwkyjMim4TwWeotifI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACB
AKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53Jj7uyk31drV2qxhIOsLDC9dGCWj4
7Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx jdoe@doemachine.local
Copy to Clipboard Toggle word wrap

您可以通过在 InstallDir/etc/keys.properties 文件中添加以下条目,创建具有 admin 角色的 jdoe 用户(在一行中):

jdoe=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7
gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnfqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCX
YFCPFSMLzLKSuYKi64QL8Fgc9QAAAnEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6Ewo
FhO3zwkyjMim4TwWeotifI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACB
AKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53Jj7uyk31drV2qxhIOsLDC9dGCWj4
7Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,g:admingroup
Copy to Clipboard Toggle word wrap
重要

不要在此处插入 id_rsa.pub 文件的整个内容。插入代表公钥本身的符号块。

17.2.3.6. 支持检查公钥身份验证

启动容器后,您可以通过运行 jaas:realms 控制台命令来检查是否支持公钥身份验证,如下所示:

karaf@root()> jaas:realms
Index │ Realm Name │ Login Module Class Name
──────┼────────────┼─────────────────────────────────────────────────────-
1 │ karaf │ org.apache.karaf.jaas.modules.properties.PropertiesLoginModule
2 │ karaf │ org.apache.karaf.jaas.modules.publickey.PublickeyLoginModule
3 │ karaf │ org.apache.karaf.jaas.modules.audit.FileAuditLoginModule
4 │ karaf │ org.apache.karaf.jaas.modules.audit.LogAuditLoginModule
5 │ karaf │ org.apache.karaf.jaas.modules.audit.EventAdminAuditLoginModule
karaf@root()>
Copy to Clipboard Toggle word wrap

您应该会看到已安装了 PublickeyLoginModule。使用这个配置,您可以使用用户名/密码凭证或公钥凭证登录到容器。

17.2.3.7. 将 ssh 角色添加到 etc/keys.properties

etc/keys.properties 中定义的 admingroup 必须包含 ssh 角色,如下例所示:

#
# For security reason, the default auto-signed key is disabled.
# The user guide describes how to generate/update the key.
#
#karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh
Copy to Clipboard Toggle word wrap

如果 admingroup 的定义中没有 ssh 角色,您必须编辑 etc/keys.properties 并添加 ssh 角色。

17.2.3.8. 使用基于密钥的 SSH 登录

现在,您可以使用基于密钥的 SSH 工具登录到容器。例如:

$ ssh -p 8101 jdoe@localhost
____          _   _   _       _     _____
|  _ \ ___  __| | | | | | __ _| |_  |  ___|   _ ___  ___
| |_) / _ \/ _` | | |_| |/ _` | __| | |_ | | | / __|/ _ \
|  _ <  __/ (_| | |  _  | (_| | |_  |  _|| |_| \__ \  __/
|_| \_\___|\__,_| |_| |_|\__,_|\__| |_|   \__,_|___/___|

  Fuse (7.x.x.fuse-xxxxxx-redhat-xxxxx)
  http://www.redhat.com/products/jbossenterprisemiddleware/fuse/

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.

Open a browser to http://localhost:8181/hawtio to access the management console

Hit '<ctrl-d>' or 'shutdown' to shutdown Red Hat Fuse.

karaf@root()>
Copy to Clipboard Toggle word wrap
注意

如果您使用加密的私钥,ssh 实用程序将提示您输入密语。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat