【问题标题】:Crash shell unable to connect by sshCrash shell 无法通过 ssh 连接
【发布时间】:2018-03-21 03:45:41
【问题描述】:

我有一个独立的 Tomcat 应用程序,其中嵌入了 CRaSH shell 库。 我可以通过 telnet 成功连接到应用程序,但我在使用 ssh 时遇到了困难。

这是我的 crash.properties 配置:

# Key authentication
crash.auth=key
crash.auth.key.path=/usr/share/tomcat8/conf/id_rsa.pem

# SSH configuration
crash.ssh.port=2000

我已经通过 ssh-keygen 生成了一个 ssh 密钥对,然后我通过openssl rsa -in id_rsa -outform pem -pubout > id_rsa.pem 命令创建了一个 pem 文件。

无论使用什么 ssh 密钥,当我尝试通过ssh -i /usr/share/tomcat8/conf/id_rsa -p 2000 myserver.example.com 命令连接时都会出现错误:

Permission denied (publickey).

我已经尝试了here 描述的解决方案,但没有成功。我还尝试将 id_rsa.pem 密钥放在我的 war /WEB-INF/sshd 文件夹中。结果一样。

有什么线索吗?

【问题讨论】:

  • 您可能还需要为该 ssh 命令提供端口号。 SSH 默认为 22,所以你需要告诉它使用端口 2000。试试ssh -i /path/to/private/key myserver.example.com:2000
  • 抱歉忘记在我的 ssh 命令中提及它:我使用 -p 2000 和相同的结果。
  • 假设你还没有得到这个工作,尝试启用详细模式的 ssh 可能会有所帮助(在命令行中添加 -v 参数),这样你就可以获得更多关于为什么它的信息认为它不起作用。

标签: java tomcat ssh


【解决方案1】:

调试后,我注意到org.crsh.auth.KeyAuthenticationPlugin 正在比较授权密钥和登录时给出的密钥,它们是相同的,但方法authenticate 总是返回false(验证错误)。修复 bug 后,我意识到它已经被声明为 here 并且可以通过 same 方式获得拉取请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-12
    • 2021-08-28
    • 2020-07-27
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多