我在 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 机器,但无法执行“telnet”到端口 22。
我还运行此命令来禁用任何防火墙:
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 服务器”复选框,如下所示:
答案1
我跑了:
sudo apt install openssh-server
现在它可以正常工作了。如果有人能给出更好的解释,我会投票支持他们的答案。我以为 OpenSSH 已经安装好了,并且它包含 SFTP 服务器,但可能没有。我的磁盘上有 sshd_config 文件。
我进行了全新安装,它从一开始就正常工作。区别如下:
1)我没有安装任何机器名称解析,因此 Windows 可以通过机器名称连接(我稍后会尝试)
2)我没有安装任何桌面,这次只使用命令行。
其他注意事项:如果使用 Virtual Box 作为虚拟机,请将网络适配器更改为桥接适配器,这样您就会得到 192... 地址而不是 10... 地址。