杰普森:SSH 问题

2024-02-19

背景:

我正在尝试运行 Jepsen (https://github.com/jepsen-io/jepsen https://github.com/jepsen-io/jepsen)在 Ubuntu 16.04 上。我创建了 6 个虚拟机(在我的 Windows 10 电脑上),并将主机名替换为 n1、n2、...n6。所有虚拟机的用户名和密码均相同。

现在,我可以从任何虚拟机直接 ssh 到任何其他虚拟机。 (例如,从 n6 开始,我可以执行此命令“ssh n1”并且它可以正常工作)。我正在尝试从节点 6 (主机名 n6 )运行节点 jepsen 工具,以便它可以在节点 n1、n2、n3、n4 和 n5 中创建数据库。

到目前为止,我还没有对 jepsen 代码进行任何更改。我已经使用“lein install”命令编译了它,现在尝试运行它。

Problem:

为了简单地运行测试,我按照 jepsen 网页中提供的说明进行操作(“cd aerospike”;“lein test”),但它给了我以下错误:

user@Ubuntu6:~/Desktop/jepsen_cassandra/aerospike$ lein test

lein test aerospike.core-test
jepsen.generator$concat$reify__7285@577dac16>

lein test :only aerospike.core-test/counter

ERROR in (counter) (Session.java:781)
Uncaught exception, not in assertion.
expected: nil
actual: com.jcraft.jsch.JSchException: reject HostKey: n1 at com.jcraft.jsch.Session.checkHost (Session.java:781)
com.jcraft.jsch.Session.connect (Session.java:342)
com.jcraft.jsch.Session.connect (Session.java:183)
clj_ssh.ssh$eval6796$fn__6803.invoke (ssh.clj:118)
clj_ssh.ssh.protocols$eval6722$fn__6745$G__6713__6754.invoke (protocols.clj:4)
clj_ssh.ssh$connect.invoke (ssh.clj:401)
jepsen.control$session.invoke (control.clj:197)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.core$apply.invoke (core.clj:624)
clojure.core$with_bindings_STAR_.doInvoke (core.clj:1862)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invoke (core.clj:628)
clojure.core$bound_fn_STAR_$fn__4140.doInvoke (core.clj:1884)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invoke (core.clj:624)
jepsen.core$fcatch$wrapper__8355.doInvoke (core.clj:55)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$pmap$fn__6328$fn__6329.invoke (core.clj:6466)
clojure.core$binding_conveyor_fn$fn__4145.invoke (core.clj:1910)
clojure.lang.AFn.call (AFn.java:18)
java.util.concurrent.FutureTask.run (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
java.lang.Thread.run (Thread.java:748)
jepsen.generator$concat$reify__7285@254210b1>

lein test :only aerospike.core-test/cas-register

ERROR in (cas-register) (Session.java:781)
Uncaught exception, not in assertion.
expected: nil
actual: com.jcraft.jsch.JSchException: reject HostKey: n1
at com.jcraft.jsch.Session.checkHost (Session.java:781)
com.jcraft.jsch.Session.connect (Session.java:342)
com.jcraft.jsch.Session.connect (Session.java:183)
clj_ssh.ssh$eval6796$fn__6803.invoke (ssh.clj:118)
clj_ssh.ssh.protocols$eval6722$fn__6745$G__6713__6754.invoke (protocols.clj:4)
clj_ssh.ssh$connect.invoke (ssh.clj:401)
jepsen.control$session.invoke (control.clj:197)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.core$apply.invoke (core.clj:624)
clojure.core$with_bindings_STAR_.doInvoke (core.clj:1862)
clojure.lang.RestFn.applyTo (RestFn.java:142)
clojure.core$apply.invoke (core.clj:628)
clojure.core$bound_fn_STAR_$fn__4140.doInvoke (core.clj:1884)
clojure.lang.RestFn.applyTo (RestFn.java:137)
clojure.core$apply.invoke (core.clj:624)
jepsen.core$fcatch$wrapper__8355.doInvoke (core.clj:55)
clojure.lang.RestFn.invoke (RestFn.java:408)
clojure.core$pmap$fn__6328$fn__6329.invoke (core.clj:6466)
clojure.core$binding_conveyor_fn$fn__4145.invoke (core.clj:1910)
clojure.lang.AFn.call (AFn.java:18)
java.util.concurrent.FutureTask.run (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
java.lang.Thread.run (Thread.java:748)

Ran 2 tests containing 2 assertions.
0 failures, 2 errors.
Tests failed.

首先,我尝试按原样运行代码。但后来我在(的第21行和第22行添加了5个虚拟机的用户名和密码(ssh所需的)https://github.com/jepsen-io/jepsen/blob/master/jepsen/src/jepsen/control.clj https://github.com/jepsen-io/jepsen/blob/master/jepsen/src/jepsen/control.clj)。但这并没有解决问题。

我将非常感谢任何解决此问题的解决方案/指南。


这条线

actual: com.jcraft.jsch.JSchException: reject HostKey: n1 at com.jcraft.jsch.Session.checkHost

表示启动 ssh 连接的系统不愿意信任其所连接的计算机的身份。因此,这不是密码/密钥不允许您进入的问题,而是相反,启动连接的系统不确定它所连接的系统的身份。

最常见的原因是您过去使用相同的 IP 或主机名连接到系统,但该 IP 或主机名已被该系统替换。 SSH 保证,如果不同的计算机响应相同的名称,它将触发警报并且不会连接,而不是面临中间人攻击的风险。当系统确实被更换时,这会导致误报。

尝试从该系统通过 ssh 连接到目标主机并确保其正常工作。 如果没有尝试删除该系统的IP~/.ssh/known_hosts如果它在那里的话。 还要考虑一下你的~/.ssh/config文件会影响该主机,例如可能要求它具有特定的主机密钥


因为它似乎不是主机密钥冲突,所以接下来要检查的是主机正在使用哪种主机密钥。 Jsch 是它自己的 ssh 实现,它支持与 openSSH 不同的密钥集。您可以通过运行来确定系统的主机密钥类型

ssh -vvv hostname

...
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256

然后谷歌搜索 jsch 和主机密钥算法,看看是否有任何未解决的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

杰普森:SSH 问题 的相关文章

  • 内存数据存储中有 Clojure 吗?

    我主要在 Node 中编程 并且喜欢文档存储 但我想首先对客户端和服务器之间的数据调用进行原型设计 我用过lowdb https github com typicode lowdb and da base https github com
  • Android SSH 示例代码

    我想创建一个 android 活动 用于与远程设备 通过 Wifi 建立 SSH 会话并在远程设备上执行一些 Linux 命令 任何人都可以获得一个快速 简短的示例 用于使用以下命令进行连接 身份验证和发送远程命令Trilead https
  • Java 中 .NET 的 Lambda 表达式

    我最近 再次 从 C 迁移到 Java 但我非常怀念 lambda 表达式和 C 的 IEnumerable Foreach 之类的东西 所以我正在寻找Java中的lambda表达式库 有比这更好的图书馆吗LambdaJ http code
  • 如何在 RHEL 6.1 / JDK7 上安装 Clojure 1.3 with contribs?

    我一直在努力让它发挥作用 获取 clojure 1 3 是一件轻而易举的事 但现在我一直在尝试安装 contrib 库 但遇到了错误 有关于如何正确执行此操作的指南吗 旧的 clojure contrib 整体库与 clojure 1 3
  • 使用 pscp 命令时出现“未找到命令”

    我正在使用 PuTTY pscp 将项目文件夹传输到 AWS 实例 我可以使用 ppk 公钥文件进行连接并且ssh命令成功打开并登录 这里我使用命令来传输文件夹 pscp r i C path to my keys converted pe
  • 使用 JSch 分别为各个提示提供输入

    问题是 SSH 连接需要在常规登录后提供另一个用户 ID 和密码信息 我正在使用 JSch 连接到远程服务器 它接受以下形式的输入InputStream 和这个InputStream只能通过一次 由于会话是交互式的 这会导致问题 我尝试将输
  • Jenkins 通过 ssh 发布显示错误“jenkins.plugins.publish_over.BapPublisherException:无法添加 SSH 密钥。”

    为了使用 ssh 连接 jenkins 与远程服务器 我在 jenkins 中安装了通过 SSH 发布的插件 但配置后 它显示错误为 jenkins plugins publish over BapPublisherException 无法
  • VS 代码 ssh;服务器安装路径

    我正在尝试更改 VS Code 服务器文件夹安装位置 该功能最近已实现 我找到了以下参考资料 1 https github com microsoft vscode remote release issues 472 2 https sta
  • 如何检查spec/col-of中的不同ID

    s def users s coll of user distinct true 上面的规范要求每个用户映射都是不同的 但是我如何指定它来检查不同的 user ids only 不应允许以下集合 id 10 name Jessica id
  • Renci ssh.net - 连接时从表单创建控制台屏幕

    我想创建 我认为它是一个控制台 屏幕来输入并在 renci ssh net 连接之后 或期间 查看输出 我目前有一个 form1 它收集连接信息 然后您按下按钮通过 backgroundworker1 进行连接 我想我需要一个 form2
  • Clojure实现多线程的最佳方法?

    我正在开发一个用 Clojure 编写的 MUD 客户端 现在 我需要两个不同的线程 一种接收用户的输入并将其发送到 MUD 通过简单的套接字 另一种读取 MUD 的输出并将其显示给用户 我应该只使用 Java 线程 还是应该使用一些特定于
  • 如何设置 Corkscrew 通过 Draconian 代理连接到 Github

    我的公司有一个严酷的代理服务器 它阻止我通过 SSH 删除服务器 从而阻止我使用 github 我花了最后一天的时间在网上查看示例 例如 如何通过严格的代理使用 GitHub https stackoverflow com question
  • ssh - 控制套接字不存在 - 操作超时

    当我尝试从 Mac 上通过 SSH 连接到远程桌面时 收到以下错误消息 ssh vvvv email protected cdn cgi l email protection OpenSSH 7 4p1 LibreSSL 2 5 0 deb
  • 无法通过 SSH 连接到 Google 计算引擎

    我在一个新项目中设置了一个新的 Google Compute Engine 实例 我启动实例并使用命令gcloud init连接到我的项目 然后我使用命令sudo gcloud compute ssh instance 1 它引导我完成 S
  • MySQL Workbench(版本 6.0.8)SSH 身份验证问题

    我正在尝试通过 SSH 通过计算机 Y 连接到主机 X 上的 MySQL 服务器 相同的设置 但 MySQL 工作台的版本较旧 适用于我的另一个机器 CentOS 6 3 但是 相同的设置在我的 CentOS 6 5 上不起作用 我尝试使用
  • Ruby Net:SSH控制大师?

    我目前有一个 Ruby Rails 应用程序 需要建立大量的短 SSH 连接 使用 Ruby Net SSH 库可以正常工作 只是每次我想发出命令时应用程序都必须登录并协商密钥 这太慢了 有没有办法使用 Ruby Net SSH 启用 Co
  • 如何使用 Net::SSH::Perl 和公钥?

    我正在尝试使用Net SSH Perl使用公钥与此代码进行连接 my ssh Net SSH Perl gt new host debug gt 1 die 我将密钥放在 root ssh id rsa 和 root ssh identit
  • 如何让 git 和 copSSH 在正确的目录中查找密钥?

    我刚刚安装了 Windows 版 copSSH 当我启动它时 我得到一个目录C copSSH home Nick ssh其中有我的酒吧和私钥 当我通过 Cygwin bash 窗口访问此目录时 使用 ssh 用户 主机 我很高兴地登录了 但
  • SSH IdentitiesOnly=yes 转发我的所有密钥

    我一生都无法弄清楚为什么我的 SSH 配置转发了错误的密钥 我有两把钥匙 我们会打电话给他们home rsa and work rsa 我做了以下事情 eval ssh agent ssh add K ssh home rsa ssh ad
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终

随机推荐