【发布时间】:2022-01-12 16:34:29
【问题描述】:
我有一个登台服务器和一个生产服务器,我运行相同的 Bitbucket 管道,我通过 SSH 发送一些命令。不幸的是,我的生产管道总是失败:
Host key verification failed.
我已经尝试了一切,文件夹权限,重新创建密钥,没有任何效果。
最后将-v 添加到我的ssh 通话中,我想我更近了一步,但仍然迷路。
在我的登台服务器上,我看到类似这样的内容:
debug1: Host '$STAGING_SERVER' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:4
debug1: ssh_rsa_verify: signature correct
然后构建的其余部分完美无缺。
但是,在我的生产服务器上,我看到以下内容:
debug1: Host '$PRODUCTION_SERVER' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:5
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: permanently_drop_suid: 0
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Host key verification failed.
所以它看起来像在我的生产服务器上找到的密钥 is,但由于某种原因,生产服务器上的 read_passphrase 正在被调用。我刚刚使用 no 密码创建了一个新的 id_rsa 和 id_rsa.pub 密钥,那么为什么我的生产服务器会尝试调用 read_passphrase?我在两台服务器上的 ssh_config 和 sshd_config 是相同的 - 通过 diff 检查。
另一种看待它的方式是在登台服务器上立即调用ssh_rsa_verify,而在生产服务器上调用read_passphrase。
这里的任何帮助将不胜感激,这让我发疯了!
【问题讨论】:
-
您好,/dev/tty 在您的生产服务器中是否存在并可访问?你能比较两台服务器的 /dev/tty 设置吗?另外,您的服务器是否使用相同的 SSH 密钥进行连接?如果不是,您的生产 SSH 密钥在结构上是否正常?你也可以检查一下吗?
-
所以 /dev/tty 在两台服务器上都不存在 - 但正如您在登台服务器中看到的那样,它甚至没有被检查,所以我不需要它。我感觉这是某种 SSH 设置调用
read_passphrase但我不确定哪一个 - 正如我提到的ssh_config和sshd_config是相同的(我刚刚与diff仔细检查过),是否存在我应该检查任何其他设置文件吗? -
至于 SSH 密钥,它们是不同的,但生产密钥是新生成的,所以我认为它是有效的......
-
我想到的还有一件事是也许您可以尝试在生产中设置
StrictHostKeyChecking=no,此外,为了超越假设,也许您可以尝试将新创建的生产ssh密钥分配给staging 并尝试与之建立联系,以确保有效性方面没有问题。 -
那么我担心我会失去分期的工作流程:)。但我会试试这个
StrictHostKeyChecking=no
标签: ssh ssh-keys bitbucket-pipelines