我正在尝试通过 WSL 在我的 Windows 10 机器上设置一个 ssh 服务器(如果这有区别的话,我正在使用 WSL 1),运行 ubuntu。
所以我跟着本教程AllowUsers <yourusername>
。基本上,我从命令行安装了 open-ssh,并通过添加创建了一个新用户/etc/ssh/sshd_config
。我还确保防火墙允许连接到端口 22。
然后我转到另一台笔记本电脑(我试图从中 ssh 的那台),这是一台 Mac,并输入ssh 192.168.X.X
我的 Windows 机器的私有 IP(顺便说一下,它是静态的)。我的 Windows 机器(ssh 服务器)和我的 Mac 机器(ssh 客户端)都在同一个网络上,这就是我使用私有 IP 进行 ssh 的原因。
由于某种原因,系统要求我输入密码,但我不知道应该使用什么密码。我尝试了我的 Windows 机器登录密码以及我的 WSL 管理员密码(执行 sudo 命令时使用的密码)。两个都不起作用。我很确定这是显而易见的,因为我没有在网上找到任何解决方案,所以这一定是一些非常愚蠢的事情,甚至不需要问...
我也尝试过我添加的那个在ssh <yourusername>@192.168.X.X
哪里,但也需要输入密码。<yourusername>
/etc/ssh/sshd_config
编辑:
我试过了ssh localhost
,但是
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:xxxxx.
Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/user/.ssh/known_hosts:1 remove with: ssh-keygen -f "/home/user/.ssh/known_hosts" -R "localhost" ECDSA host key for localhost has changed and you have requested strict checking. Host key verification failed.
(为了保护隐私,我用 xxx 代替指纹,用 user 代替用户名)。我还停止了 ssh 服务器并关闭了开放端口,因为我担心会发生一些不好的事情,这真的很奇怪。
答案1
根据评论和聊天,我们确定视窗OpenSSH 服务器也在运行。由于它也默认使用端口 22,因此在 WSL/Ubuntu 中运行的服务器无法绑定到该端口。
因此,当您ssh
从 Mac 连接到“WSL”时,它实际上是在连接到 Windows SSH 服务器。它正在等待 Windows 用户名和密码。
由于您在 Mac 的 ssh_config 中输入了 WSL 用户名,而该用户名在 Windows 下不存在,因此拒绝所有密码。实际上,并不是密码不正确,而是用户名不正确。
由于这是 WSL1,因此解决方案相当简单——只需:
sudo vi /etc/ssh/sshd_config
# Uncomment the Port and change it to 2222 or another unused port
# Save and exit
sudo service ssh restart
并且我们向 确认了这一点ssh -p 2222 localhost
。
此后,它也可以在 Mac 上使用正确的端口号运行。