如何从远程计算机访问Apache Mina SSH服务器?

里科

我创建了一个Amazon Linux 2实例,其中部署了一个用systemd启动的Java程序。该Java程序是一个vertx-shell应用程序,它使用Apache Mina在端口2000上启动SSH服务器。应该可以通过以下两种方式连接到SSH服务器:公钥或密码验证。

在对端口22进行经典ssh身份验证以访问我的Amazon实例之后,我可以使用密码auth连接到本地在端口2000上运行的java ssh服务器。但是,当我尝试从提供Amazon私钥的本地计算机连接到SSH服务器时,连接卡在“ debug1:本地版本字符串SSH-2.0-OpenSSH_7.5 ”行上,并在2分钟的超时后最终被拒绝:

ssh -i /Users/toto/.ssh/my_amazon_key.pem -p 2000 [email protected] -vvv
OpenSSH_7.5p1, LibreSSL 2.5.4
debug1: Reading configuration data /Users/toto/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 52: Applying options for *
debug2: resolving "my-application.server.com" port 2000
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to my-application.server.com [35.XXX.XX.XX] port 2000.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /Users/toto/.ssh/my_amazon_key.pem type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/toto/.ssh/my_amazon_key.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.5
ssh_exchange_identification: Connection closed by remote host

在Java应用程序日志上,我可以看到有人试图连接到SSH服务器但2分钟后无法通过身份验证的日志。

当然,我已经在我的Amazon安全组中签入了我打开的端口2000。在我的情况下,没有拒绝的IP。

这是运行SSH服务器的Java代码:

ShellService service = ShellService.create(vertx,
                new ShellServiceOptions()
                        .setTelnetOptions(
                            new TelnetTermOptions().
                                setHost("localhost").
                                setPort(5000))
                        .setSSHOptions(
                            new SSHTermOptions().
                                setHost("0.0.0.0").
                                setPort(2000).
                                setKeyPairOptions(new JksOptions().
                                        setPath("ssh/keystore.jks").
                                        setPassword("wibble")).
                                setAuthOptions(new ShiroAuthOptions().
                                        setConfig(new JsonObject().put("properties_path", "classpath:ssh/auth.properties"))))
        );

任何的想法 ?Vertx / Apache Mina配置?在端口22和端口2000上运行的SSHD之间是否存在冲突?

里科

好的,我终于找到了问题所在。实际上,我必须做两件事:

  1. 我将端口从2000更改为3000,然后不再被卡住,至少我可以使用密码进行身份验证。但是公钥认证仍然失败。所以我想初始端口2000上已经有其他东西在运行,导致连接卡死了。
  2. 我正在使用特定用户vertx启动我的Java应用程序,因此Apache Mina SSH服务器正在为用户vertx寻找不存在的authorized_keys文件。一旦我在具有正确权限的vertx用户主目录中自己的.ssh目录中使用公钥创建了它,便可以进行身份​​验证,以提供相应的私钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从远程计算机访问MySQL服务器

如何配置Postgres 9.5服务器,以便可以从远程计算机访问它?

Mac:如何从其他计算机远程访问在Docker容器中运行的服务器?

如何使用ssh将文件从远程服务器传输到本地计算机

Apache Mina:如何编写一个 Http 服务器?

如何使用Scala / Java启动Apache MINA FTP服务器?

Apache Mina SFTP服务器端通道侦听器,用于接收文件

从本地网络中的计算机远程访问安装在VM上的Apache服务器

通过NAT后面的远程服务器访问远程计算机

使用Apache Mina作为模拟/内存SFTP服务器进行单元测试

SFTP服务器在Apache Mina SSHD中设置用户/密码

如何使用Mina部署将Rails 5.2 master.key移到服务器上?

使用ssh修改远程服务器计算机的用户定义的系统变量(即数字)?

通过SSH将远程服务器克隆到本地计算机

无法从我的本地计算机 SSH 到远程服务器权限被拒绝(公钥)

从服务器备份到计算机(SSH)

从本地计算机连接到服务器-SSH

Zurmo CRM:通过Lan从远程计算机访问Wamp服务器

运行远程SonarQube服务器并可以从多台计算机进行访问

记录从我的计算机访问的网站/远程服务器

从半不受信任的计算机访问ssh服务器的最佳实践/安全方法

无法访问vmware来宾计算机上的apache Web服务器

如何将文件从远程服务器复制到本地计算机?

如何将文件从远程服务器复制到本地计算机?

如何从本地计算机上的双远程服务器复制文件

如何在 Python 中将图像从远程服务器复制到本地计算机

如何从远程计算机连接到弹性搜索服务器?

如何通过每个人都可以访问的服务器通过隧道连接到无法访问的远程计算机?

如何从其他计算机向我的Ubuntu服务器添加SSH密钥