在服务器上,我安装了 openSUSE,配置了 SSH,因此只允许一个用户使用,只允许使用公钥(无 pam,无密码),来自特定的 IP。
SSH 工作,X11 转发工作,SFTP 工作。
现在,我需要第二个系统,与外部世界几乎完全相同。我安装了 Xubuntu,设置了 SSH、防火墙,从 openSUSE 复制了完全相同的 SSH 配置和密钥,然后……
SSH 工作,X11 转发工作,SFTP才不是工作。
我使用 FileZilla 进行连接,它给出错误“sftp 从 sftp 服务器收到意外的文件结束”。我在 Google 上搜索了一下,发现建议检查服务器上的“/var/log/auth.log”,所以我照做了,一切顺利,当我尝试使用 SFTP 进行连接时,我只看到一条消息“sshd[11835]:已接受... 的公钥”。
什么原因造成这种差异以及如何解决?
答案1
终于找到了。我尝试了其他客户端,希望其中一个能带来新的亮点,结果“sftp -v”确实带来了新亮点。我复制的 sshd 配置使用的是外部 sftp 服务器(openSUSE 中有,但 Xubuntu 中没有)。我将其更改为内部服务器,现在我也可以使用 Xubuntu 进行连接。
答案2
你已经安装了 FTP 服务器了吗?如果没有,请按照下面的步骤安装一个 FTP 服务器守护进程,例如 vsftp
sudo zypper -n in vsftpd
然后配置/etc/vsftpd.conf
文件。否则,请重新检查客户端的配置,并确保你把 SSH 私钥和公钥的目录放对了。