小编sch*_*rak的帖子

systemd 127.0.0.53 上的 DNS 忽略了一些查找

在 127.0.0.53 喜欢的 systemd 的 DNS 似乎正在工作,除非我按名称查询本地机器。但是,如果我查询它们并专门指定本地 DNS 服务器(我的路由器),那么我会得到正确的答复。但是配置文件说它也使用路由器作为搜索地址。有什么想法吗?

我在戴尔笔记本电脑上运行 Ubuntu 18.04。

结果不正确:

$ nslookup web1

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find web1: SERVFAIL
Run Code Online (Sandbox Code Playgroud)

也失败

$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found
Run Code Online (Sandbox Code Playgroud)

正确结果:

$ nslookup web1 192.168.1.1

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   web1
Address: 192.168.1.107
Run Code Online (Sandbox Code Playgroud)

配置信息 systemd-resolve

$ systemd-resolve --status

Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp …
Run Code Online (Sandbox Code Playgroud)

networking dns 18.04

20
推荐指数
3
解决办法
3万
查看次数

php 7.4,ssh_connect(),仅在连接到 ubuntu 22.04 机器时“无法交换加密密钥”

我有一个 PHP 工具,需要通过 SSH 访问我的一些服务器。这是一个仅供内部使用的应用程序,在与 Ubuntu 18.04 机器通信时它可以 100% 正常工作。

我开始将我的机器更新到 22.04,当我尝试使用 PHP 和 ssh2_connect() 打开 SSH 连接时,22.04 上的每台机器现在都会给出错误消息“无法交换加密密钥”。

当我在 CLI 中时,我能够使用安全密钥和用户进行 SSH,并尝试像 Web 服务器启动 ssh 一样进行访问。

sudo -u www-data ssh -i [path-to-private-key] [user]@[ip-address]
Run Code Online (Sandbox Code Playgroud)

我有一台运行 PHP 7.2 的服务器和一台运行 7.4 的服务器,两者都给出相同的错误,但仅在与 Ubuntu 22.04 机器对话时出现。

这是给我错误的命令:

$this->_CON = ssh2_connect($sshHost, $sshPort, [ 'hostkey' => 'ssh-dss,ssh-rsa' ]);
Run Code Online (Sandbox Code Playgroud)

这将建立连接,但当然不允许用户使用密钥:

$this->_CON = ssh2_connect($sshHost, $sshPort);
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

- - 更新 - -

好的,我刚刚将另一台服务器更新到 22.04,但 ssh2_connect 立即无法与该服务器通信。所以我确信这是 22.04 服务器的问题,而不是 php 服务器的问题。我只需要弄清楚哪个包发生了变化。也许某些配置文件导致密钥交换以不同的方式工作。

这仅通过 php ssh2_connect 进程发生。即使使用相同的密钥,也不会在命令行上直接使用 ssh 命令。

ssh php7

4
推荐指数
1
解决办法
8509
查看次数

标签 统计

18.04 ×1

dns ×1

networking ×1

php7 ×1

ssh ×1