我在 Windows 10 笔记本电脑的 Virtual Box 上安装了 Ubuntu 20.4(包括 Open SSH)作为虚拟机。我安装了 Samba 以允许机器名称连接。
下面显示了端口 22 上的侦听器,以及 SSH 的状态。
我的ssh_config
文件中未注释掉的行是:
Include /etc/ssh/ssh_config.d/*.conf
Host *
Port 22
Match Group filetransfer
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
PubkeyAuthentication no
我打算先尝试用户/密码身份验证,然后在我开始工作后进行公钥身份验证。
在 Windows 命令提示符下,我可以 ping 机器,但不能对端口 22 执行“telnet”。
我还运行了这个命令来禁用任何防火墙:
sudo ufw disable
从这篇相关文章(如何开始监听端口 22)中,我从 Ubuntu 终端尝试了以下操作:
ssh -vvv localhost
我不确定那是做什么的,因为我想从我的 Windows 机器连接。它响应以下内容:
debug1: /etc/ssh/ssh_confg line 19: cinclude /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config lin 21: Applying optiosn for *
debug2: checking match for "group filetransfer' but localhost original localhost
Unsupported Match attribute Group
/etc/ssh/ssh_config line 51: Bad Match condition
我不确定我是否应该运行它,但也许它表明我ssh_config
的不正确?我检查了几个博客。
我按照这里的教程设置用户和组:https ://gist.github.com/lymanlai/3008244
当我安装 Ubuntu 20.4 时,我选中了“安装 OpenSSH 服务器”框,如下所示:
我跑了:
现在它正在工作。如果有人能给出更好的解释,我会投票给他们的答案。我以为 OpenSSH 已经安装了,它包括 SFTP 服务器,但可能没有。我的磁盘上有 sshd_config 文件。
我做了一个全新的安装,它从一开始就工作。不同之处在于:
1)我没有安装任何机器名称解析,所以 Windows 可以通过机器名称连接(我稍后会尝试)
2)我没有安装任何桌面,这次只使用命令行。
其他注意事项:如果为虚拟机使用 Virtual Box,请将网络适配器更改为桥接适配器,以便您获得 192... 地址而不是 10... 地址。