使用Docker操作“ssh localhost”时出现“connect to host localhost port 22: Connection refused”问题的解决

本文介绍在Docker容器环境下安装配置Hadoop单节点集群的过程,特别针对解决无密码SSH登录配置失败的问题,提供了详细的步骤说明及解决方法。

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

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81166835
本文出自【我是干勾鱼的博客

Ingredient:

想在Docker容器中安装Hadoop,设置系统无密码登录时,配置了公钥私钥之后,操作:

ssh localhost

却仍然报错:

root@becdadab2db1:/# ssh localhost
ssh: connect to host localhost port 22: Connection refused

后来发现竟然是没有开ssh服务。虽然ssh可以连接别的服务器,但那是使用的ssh客户端,而被连接时就要使用服务器了。使用命令查看一下:

ps -e | grep ssh

可以查看一下状态:

root@becdadab2db1:/# /etc/init.d/ssh status
 * sshd is not running

如果没有就启动一下服务器:

root@becdadab2db1:/# /etc/init.d/ssh start 
 * Starting OpenBSD Secure Shell server sshd  

然后在进行:

ssh localhost

操作就成功了!

参考:

Hadoop系列之(一):Hadoop单机部署

Ubuntu下 ssh : connect to host localhost port 22:Connection refused

### VSCode 远程连接服务器 Docker 容器失败解决方案 当遇到VSCode远程连接到服务器中的Docker容器出现问题,通常是因为SSH连接配置不正确或是Docker守护进程未正常运行等原因造成的。对于`ssh: connect to host 0.0.0.0 port 6789: Connection refused`这类错误消息表明客户端尝试通过指定IP地址和端口号建立SSH连接被拒绝。 为了确保能够成功地利用VSCode进行远程调试,需确认几个方面: #### 确认Docker服务状态 确保目标主机上的Docker服务已经启动并正在监听必要的TCP/IP端口。可以通过执行命令来开启Docker守护程序[^1]: ```bash sudo service docker start ``` #### SSH隧道设置 如果存在防火墙阻止直接访问,则可以考虑创建一个SSH隧道以便安全地转发流量至内部网络资源。这里推荐使用`autossh`工具保持持久性的SSH会话,并且自动重连断开的链接[^3]。外网服务器应作为跳板机角色,在其上安装并配置好`autossh`后,可通过如下方式构建反向代理通道: ```bash autossh -M 0 -f -N -R *:本地端口:localhost:远端DockerAPI端口 用户名@外网服务器地址 ``` #### 修改Docker Daemon配置文件 为了让外部能顺利接入Docker API接口,可能还需要调整位于/etc/docker/daemon.json路径下的JSON格式配置文档,加入类似下面的内容以允许特定范围内的IP地址访问Docker引擎: ```json { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } ``` 注意:开放此端口可能会带来安全隐患,请谨慎操作! #### 使用合适的Docker镜像 针对那些希望长期维持在线等待进一步指令的情况,建议采用不会立即终止进程的基础镜像。例如,在自定义的Dockerfile里指定`ENTRYPOINT ["/bin/sleep", "infinity"]`可使容器持续处于活动状态而不自行关闭[^4]. #### 测试连接性 最后一步是在完成上述所有准备工作之后测试整个流程是否通畅无阻。可以从本机或者其他任意位置发起请求验证能否无障碍抵达目的节点。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值