我最近配置了一个运行 Ubuntu 22.04 的新 Web 服务器(AWS EC2 实例)。我可以在 Windows 和 Mac 上通过 CLI 通过 SSH/SFTP/SCP 连接到服务器,但是当我尝试通过 GUI(Windows 上的 WinSCP;Mac 上的 Commander One)进行 SFTP 连接时,我的身份验证被拒绝。我使用的是没有密码的私钥连接,并且 CLI 和 GUI 中使用的是相同的密钥。
在远程 Ubuntu 服务器上,我正在运行,byobu
但我尝试禁用它(byobu
修改了我的.bashrc
和.profile
),但这并没有解决问题。
我有许多其他服务器都运行不同版本的 Ubuntu(有问题的服务器是 22.04 上唯一的一台),所有服务器都已byobu
启用,并且通过 SSH 或 GUI SFTP 连接到它们没有任何问题。
也许 Ubuntu 22.04 上最新版本的 OpenSSH 和 OpenSSL 发生了一些变化? Ubuntu 22.04 上安装的版本是OpenSSH_8.9p1 Ubuntu-3
& OpenSSL 3.0.2 15 Mar 2022
。
我也添加PubkeyAcceptedKeyTypes=+ssh-dss
到我的sshd_config
文件中,但这没有帮助。
最后,我运行了 UFW,但禁用了它,这并没有改变任何东西。
答案1
根据 @MartinPrikryl(WinSCP 的开发者),我尝试了 WinSCP 的 5.20.x beta 版本,并且成功了。看起来 Ubuntu 22.04 必须使用 GUI 客户端尚未完全更新的较新协议版本。
答案2
我的情况与您完全相同(我们的设置几乎相同),并且我收到完全相同的错误消息。我在 AWS 上提交了支持票证,收到了以下回复:
所以,我想提一下,我能够在实验室环境中复制这种情况,并且能够在 Ubuntu 22.04 LTS 版本上成功连接到 SFTP。我用于 Ubuntu 映像的 AMI 是 ami-09d56f8956ab235b3 并在 us-east-1 区域中配置实例。我用来测试 SFTP 的客户端是“Mac Terminal”,使用以下命令:
sftp -i /location of pem file/ [email protected]
连接到服务器时,我没有遇到任何“无法验证”错误。此外,我想提一下,我们无权更新 AWS 上托管的 Ubuntu 映像,因为它们由供应商管理。