传入的 ssh 连接似乎是与本机 (MacOSX) sshd 建立的,而不是与 Homebrew 安装的 OpensSSH sshd 建立的
我有一台 vm linux ubuntu server 18.0.4 和运行 Osx 10.14.6 的 Macbook,两者都有用户 bbb 的帐户,并且我可以成功地从每个帐户连接到每个帐户而没有任何问题。
macbook 通过 homebrew ssh -V 安装了 openssh
OpenSSH_8.0p1,OpenSSL 1.1.1d 2019 年 9 月 10 日 哪个 ssh /usr/local/bin/ssh
正如预期的那样(请注意,原始 Mac osx 版本位于 /etc/ssh 中,并且是版本 7.9)
但是,当我从 vm ubuntu 机器连接到 MacBook 时,连接显然是连接到 OSX shh 版本 7.9,而不是 homebrew 版本 8.0
可以看到,使用命令从 ubuntu 服务器(172.116.36.1290)连接到 macbook 10.10.2.3
ssh -v [email protected]
>
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 10.10.2.3 [10.10.2.3] port 22.
debug1: Connection established.
debug1: identity file /home/bbb/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_dsa-cert type -1
debug1: identity file /home/bbb/.ssh/id_ecdsa type 2
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/bbb/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9
debug1: match: OpenSSH_7.9 pat OpenSSH* compat 0x04000000
(..... login is successful)
类似地,使用 nmap 从 ubuntu 扫描 mac osx ssh 服务器
sudo nmap --script ssh2-enum-algos -sV -p 22 10.10.2.3
>
[sudo] password for bbb:
Starting Nmap 7.60 ( https://nmap.org ) at 2019-09-23 03:25 UTC
Nmap scan report for 10.0.2.3
Host is up (0.0011s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9 (protocol 2.0)
| ssh2-enum-algos:
| kex_algorithms: (10)
.......etcetera
此外,重复从 macbook 10.10.2.3 到 ubuntu 服务器 172.116.36.129 的反向连接
ssh -v [email protected]
>
OpenSSH_8.0p1, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug1: Connecting to 172.116.36.129 [172.116.36.129] port 22.
debug1: Connection established.
debug1: identity file /Users/bbb/.ssh/id_rsa type -1
debug1: identity file /Users/bbb/.ssh/id_rsa-cert type -1
debug1: identity file /Users/bbb/.ssh/id_dsa type -1
debug1: identity file /Users/bbb/.ssh/id_dsa-cert type -1
debug1: identity file /Users/bbb/.ssh/id_ecdsa type -1
debug1: identity file /Users/bbb/.ssh/id_ecdsa-cert type -1
debug1: identity file /Users/bbb/.ssh/id_ed25519 type -1
debug1: identity file /Users/bbb/.ssh/id_ed25519-cert type -1
debug1: identity file /Users/bbb/.ssh/id_xmss type -1
debug1: identity file /Users/bbb/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.0
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
(..... login is successful)
显示预期的自制版本 8.0!!!
我不明白,有人可以帮忙吗?
提前致谢
答案1
SSH 是一个由两部分组成的程序:有一个服务器,称为 SSH Daemon,它包含在二进制文件“sshd”中,还有一个客户端,您可以将其作为“ssh”运行。
服务器二进制文件通常驻留在../sbin 中,因为它可能需要绑定到特权端口 22,因此被视为仅超级用户可执行文件。
你的所有“证据”都表明你在 MacOS 上使用的客户端 (ssh) 是你自制的。但你没有检查任何有关服务器 (sshd) 的信息。
在您的情况下,系统似乎仍然在默认位置运行其捆绑的 sshd,并且它绑定到端口 22。要在那里绑定另一个程序,您需要先停止旧程序。
因此,如果您想在默认端口上运行 sshd,则必须禁用捆绑的 sshd。您也可以在不同的端口上运行它们,其中一个将使用非默认端口。为此,在 sshd_config 中:
...
Port 22222
...
然后,使用“ssh -p 22222 user@address”进行连接。