scp 拷贝文件夹到远程服务器被拒绝ssh: connect to host xxx.xxx.xxx.xxx port xxxxx: Connection refused

1. 报错log如下:

2. 解决办法:

a. 首先确认远程服务器有安装ssh服务器:

没有安装的话:安装命令如下:

  • 客户端

# apt-get install ssh

如果安装失败,则使用下面命令进行安装

# apt-get install openssh-client

  • 服务端

安装服务器

# apt-get install openssh-server

启动服务器

# /etc/init.d/ssh start                #启动

b. 确认报错的log端口号,是否为默认端口号,如下,端口号不为默认端口22.所以可能是被服务器防火墙拒了。

解决方案一:换用默认端口:命令添加-P 22即可

解决方案二:服务器防火墙打开支持报错的端口。(未验证)

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 57929 -j ACCEPT

重启防火墙,使配置生效:

/etc/init.d/iptables restart

service iptables restart

### 解决 SSH 连接被拒绝 (Connection Refused on Port 22) 当遇到 `ssh: connect to host 192.168.36.234 port 22: Connection refused` 错误时,通常意味着目标主机上的 SSH 服务未运行或配置错误。以下是排查和解决问题的方法: #### 检查 SSH 服务状态 确认远程服务器上是否启用了 SSH 服务并正在监听端口 22。 ```bash sudo systemctl status sshd ``` 如果服务未启动,则可以尝试启动它: ```bash sudo systemctl start sshd ``` 确保服务设置为开机自启: ```bash sudo systemctl enable sshd ``` #### 防火墙设置检查 防火墙可能阻止了外部访问 SSH 端口。验证防火墙规则允许 TCP 流量通过端口 22: 对于基于 iptables 的系统: ```bash sudo iptables -L | grep 22 ``` 对于使用 firewalld 的系统: ```bash sudo firewall-cmd --list-all | grep 22 ``` 添加必要的防火墙规则来开放端口 22: ```bash sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload ``` #### SELinux 设置调整 SELinux 可能会限制 SSH 访问权限。临时禁用 SELinux 来测试连通性: 编辑 `/etc/selinux/config` 文件并将 `SELINUX=enforcing` 改为 `SELINUX=permissive` 或者直接关闭 SELINUX 功能[^3]。 重启机器使更改生效后再试一次 SCP 命令看问题是否存在。 #### 修改 SSHD_Configuration 文件 查看 `/etc/ssh/sshd_config` 中是否有不恰当的配置项影响正常工作,比如 ListenAddress 和 PermitRootLogin 参数设置不当可能会导致无法登录[^4]。 #### 使用其他端口号 有时默认端口已被占用或其他原因造成冲突,可以在客户端指定不同的端口进行连接测试: ```bash scp -P <alternate_port> ./release.sh user@remote_host:/path/to/target/ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingdongkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值