http://www.dtmao.cc/news_show_703007.shtml

Step1

利用CentOS基础镜像,创建一个docker容器,主要这里要指定端口映射,必须要映射到容器内的22端口,否则无法用ssh登录容器。

docker run -it -p 3361:22 -p 3362:8888 centos /bin/bash

注意:这里的3361和3362端口你服务器需要开放,不然后面也会无法登录。我用的是阿里云服务器,是在防火墙中开放了这两个端口

Step2

安装 openssl, openssh-server 等工具

yum install -y openssl openssh-server

Step3

如果要正常启动ssh服务,/var/run/sshd 必须存在,手动创建并启动ssh服务:

mkdir -p /var/run/sshd
/usr/sbin/sshd -D &

此时可能会出现如下报错:


解决方法:在docker容器内的命令行依次输入如下代码

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

再次执行

/usr/sbin/sshd -D &


成功开启ssh服务

查看sshd是否监听22端口

yum install -y net-tools
netstat -apn | grep ssh

Step4

修改ssh配置文件

在docker容器内的命令行输入:vim /etc/ssh/sshd_config

设置ssh的端口:Port 22


将 PermitRootLogin 的 no 改为 yes,即允许root用户登录

Step5

重启ssh服务

/usr/sbin/sshd -D &

用上面方法重启,可能还是无法用root登录

如果不行,可以换下面命令进行ssh重启

/etc/init.d/ssh restart

查看sshd是否监听22端口

Step6

给docker容器添加密码

我们必须要给docker容器设置密码,后面才能以ssh的方式登录容器

在容器内使用 passwd 命令创建密码,若没有这个命令,则用 yum install passwd 进行安装

实战演练

利用ssh直接登录docker容器

ssh root@10.11.6.14 -p 3361

这里的root指的是docker容器的root用户,不是服务器的用户名,密码是你上面设的docker容器的密码

Pycharm远程连接docker容器

常见问题:Connection refused

出现Connection refused大概率是因为你的docker容器被stop了,那ssh服务自然没有开启,那就不能登录

解决方法:docker start 容器,然后用 /etc/init.d/ssh restart 开启ssh服务

开启成功的话会显示下面内容

Restarting OpenBSD Secure Shell server sshd [OK]

docker容器开启ssh服务的更多相关文章

  1. docker 容器开启ssh服务

    ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...

  2. Docker CentOS / Ubuntu容器开启 SSH 服务

    Docker CentOS / Ubuntu容器开启 SSH 服务 在CentOS容器内执行 yum install passwd openssl openssh-server -y # Ubuntu ...

  3. Docker创建支持ssh服务的容器和镜像

    原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...

  4. docker容器化python服务部署(supervisor-gunicorn-flask)

    docker容器化python服务部署(supervisor-gunicorn-flask) 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-furt ...

  5. linux开启ssh服务

    本文概略:1)ubuntu发行版开启ssh.2)centos发行版开启ssh 1.ubuntu发行版安装/开启ssh服务 1.1 安装ssh服务端 sudo apt-get install opens ...

  6. Ubuntu下开启ssh服务

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

  7. 让ubuntu开启ssh服务以及让vi/vim正常使用方向键与退格键

    VIM 修复方法: 安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令.ubuntu预装的是vim tiny版本,而需要的是vim full版本.执行下面的语句安装vim f ...

  8. ubuntu如何开启SSH服务

    ubuntu如何开启SSH服务 分类: Linux 运维与操作基础2013-02-24 13:33 2868人阅读 评论(0) 收藏 举报 sshd ubuntu ubuntu默认并没有安装ssh服务 ...

  9. 如何在ubuntu开启ssh服务-使 SecureCRT远程登录

    不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service  sshd  restart  之类 ...

  10. Windows7安装Bitvise开启ssh服务

    Windows7安装Bitvise开启ssh服务 by:铁乐猫 在Liunx和windows10上配置SSH服务是一件很容易的事,毕竟系统己经自带了ssh的服务功能. 不过在windows7上可不容易 ...

随机推荐

  1. Analysis of Set Union Algorithms 题解

    题意简述 有一个集合,初始为空,你需要写一个数据结构,支持: 0 x 表示将 \(x\) 加入该集合,其中 \(x\) 为一由 \(\texttt{0} \sim \texttt{9}\) 组成的数字 ...

  2. 白鲸开源 DataOps 平台加速数据分析和大模型构建

    作者 | 李晨 编辑 | Debra Chen 数据准备对于推动有效的自助式分析和数据科学实践至关重要.如今,企业大都知道基于数据的决策是成功数字化转型的关键,但要做出有效的决策,只有可信的数据才能提 ...

  3. 教程 | 使用 Apache SeaTunnel 同步本地文件到阿里云 OSS

    一直以来,大数据量一直是爆炸性增长,每天几十 TB 的数据增量已经非常常见,但云存储相对来说还是不便宜的.众多云上的大数据用户特别希望可以非常简单快速的将文件移动到更实惠的 S3.OSS 上进行保存, ...

  4. games101 作业1及作业2分析及解决

    games101 作业1及作业2分析及解决 去年的时候把games101的课程以及作业完成,但是整个过程比较粗略,也借助了不少外界的力量(doge),于是最近准备抽几天集中再把作业(1-7)过一遍,常 ...

  5. Java——N以内累加求和

    2024/07/15 1.题目 2.错误 3.分析 4.答案 1.题目 2.错误 import java.util.Scanner; public class Main { public static ...

  6. 折腾 Quickwit,Rust 编写的分布式搜索引擎(专为从对象存储中实现亚秒级搜索而设计)

    什么是 Quickwit? Quickwit 是首个能在云端存储上直接执行复杂的搜索与分析查询的引擎,并且具有亚秒级延迟.它借助 Rust 语言和分离计算与存储的架构设计,旨在实现资源高效利用.易于操 ...

  7. drawable xx should not reference itself

    背景: 在Android中新增一个xx.xml,在layer-list 的item中设定引入的drawable后,报这个提示(xx不能引用自身) 原因: 这个错误其实很离谱,但是还是有必要记一下,万一 ...

  8. openFile(/tmp/spring.log,true) call failed. java.io.FileNotFoundException: /tmp/spring.log (Permission denied)

    ERROR [main] SpringApplication: Application run failed java.lang.IllegalStateException: Logback conf ...

  9. C语言三子棋

    话说自从大一学C语言后用C语言的巅峰也就是第十二届蓝桥杯了,后续开发什么的都是用的java,搞开发java这样的面向对象语言确实用着更顺手方便点.不过C语言YYDS,"C生万物"嘛 ...

  10. 6.12Web应用漏洞发现探针利用

    已知CMS.开发框架. 思路: 各个页面查看数据包(地址信息),查看框架,上fofa关键字搜索(查看其框架信息如thinkhphp),利用检测工具测试漏洞情况: 网站根目录下的robots.txt文件 ...