ssh:connection refused

本文介绍了解决SSH连接问题的方法,包括解决openssh-server安装时的依赖冲突,通过覆盖安装openssh-client来修复版本不匹配的问题,并调整文件权限以确保用户能够访问指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ssh无法开启

在使用ssh的时候发现不能用,包括scp远程拷贝也被拒绝
在这里插入图片描述

sudo apt-get install openssh-server

使用命令安装server时发现问题,未满足依赖关系,原因是server和client版本不同
在这里插入图片描述
因此,我们需要对openssh-client进行覆盖安装

sudo apt-get install openssh-client=1:7.6p1-4
版本按照依赖的那个版本修改

在这里插入图片描述
安装好client后,就可以安装server了

sudo apt-get install openssh-server

在这里插入图片描述
完成之后,ssh就可以正常工作了

如果出现下述的问题,原因是该用户对/home/admin_/learn/lessonPi这个路径没有访问权限
在这里插入图片描述

chmod 766 /home/admin_/learn/lessonPi
ls -lh

使用第一条命令给予权限,第二条命令查看权限

### SSH 连接被拒绝的原因 当遇到 `ssh: connect to host ... port 22: Connection refused` 错误时,通常意味着目标主机上的SSH服务不可达。这可能是由于以下几个原因之一: - **SSH服务器未安装**:某些操作系统默认仅安装了SSH客户端而忽略了服务器组件。对于Ubuntu而言,默认情况下只预装了SSH客户端[^1]。 - **SSH服务未运行**:即使已经正确安装了SSH服务器软件包,如果该服务尚未启动,则仍然无法接受远程连接请求。 - **防火墙阻止访问**:本地或远程网络中的防火墙设置可能会拦截传入的数据流,特别是针对TCP端口22的流量。 - **配置文件错误**:SSH守护进程(sshd)可能因配置不当而未能正常工作;例如监听地址、权限认证等问题都可能导致其拒绝对外提供服务。 ### 解决方案 #### 安装并启用SSH Server 为了允许其他计算机通过SSH协议来建立到当前系统的安全shell会话,在Ubuntu环境下需执行以下命令以确保OpenSSH服务器已被部署并且处于活动状态: ```bash sudo apt update && sudo apt install openssh-server -y ``` 验证SSH服务的状态可以通过下面这条指令完成: ```bash sudo systemctl status ssh ``` 若结果显示为inactive(dead),则应尝试手动激活它: ```bash sudo systemctl start ssh ``` 确认无误之后最好将其设为开机自启项以免重启后失效: ```bash sudo systemctl enable ssh ``` #### 防火墙调整 检查是否存在任何阻碍外部IP到达指定端口号的安全策略,并做适当修改以便放行必要的通信路径。如果是基于UFW(Uncomplicated Firewall)工具管理的话,那么添加一条规则开放SSH端口将是明智之举: ```bash sudo ufw allow OpenSSH ``` 或者更具体地指明要解封哪个范围内的端口: ```bash sudo ufw allow 22/tcp ``` 最后记得重新加载防火墙配置使更改生效: ```bash sudo ufw reload ``` #### 检查配置文件 有时问题根源在于/etc/ssh/sshd_config这个核心配置文档里定义的内容有误或是不符合预期的要求。建议仔细审阅其中各项参数设定是否合理合法,比如PermitRootLogin选项决定了root账户能否直接登录等敏感事项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值