背景是我用Windows系统,通过SSH客户端,例如smarTTY等工具,去连接Linux虚拟机,能成功连上,但是上传下载文件失败,无论这个文件多小都提示failed,但是执行其他任何命令却是可以的,上网找了很多资料都没有解决办法。
可能的原因及解决办法如下:
Linux的22端口没有对外开放,被防火墙禁止了,但是能被连接上,这个原因还不知道。但是可以通过防火墙对外开放22端口
使用firewall-cmd操作firewalld(适用于使用firewalld作为防火墙管理工具的系统):
firewall-cmd --zone=public --add-port=22/tcp --permanent
这个命令将在
public
区域永久性地添加对22端口的TCP连接的允许。确保使用--permanent
选项使更改持久化,以便在系统重新启动后保留配置。
重新加载firewalld配置:
firewall-cmd --reload
这个命令会重新加载防火墙配置,使您的更改生效。
验证端口是否已经开放:
firewall-cmd --list-ports | grep "22/tcp"
这个命令将列出已经开放的端口,确认22端口是否已经在列表中。
检查SSH服务状态:
systemctl status sshd
确保SSH服务正在运行,并且没有错误。
测试SSH连接:
使用SSH客户端尝试连接到Linux服务器,确保连接成功,并且上传下载文件成功!
请注意,对外开放22端口将使SSH服务暴露在公共网络中,因此务必确保您的系统安全性和防护措施已经充分配置,以防止未经授权的访问和恶意攻击。