宿主机ssh免密登录docker容器

一、检查系统内核

二、安装docker

1.yum install docker  -y

2.docker version                    #查看docker版本

3.systemctl restart docker     #启动docker服务

4.groupadd docker & useradd -g docker docker

三、安装镜像

docker pull [选项] :标签

docker pull centos:7

docker images                      #查看本地所有镜像

docker run -it  --name=jenkens centos    /bin/bash   #运行镜像

-it : 交互式终端

centos: 以基础镜像启动容器

/bin/bash:交互式shell 使用bash

补充两个命令:

docker ps: 查看当前运行的容器

    docker ps -a:查看所有容器,包括停止的。

四、运行容器

   docker run -it -v /home/docker/build:/root/build --privileged -h hadoop1 --name hadoop1 centos /bin/bash

#以centos镜像启动一个容器,容器名是jenkins1,主机名是jenkins1,并且将基于容器的centos系统的/root/build目录与本地/home/docker/build共享。

  1.yum install vim

      2.yum -y install openssh-server

3.yum -y install openssh-clients

  编辑sshd的配置文件/etc/ssh/sshd_config,将其中的UsePAM yes改为UsePAM no
  vi /etc/ssh/sshd_config    /usr/sbin/sshd -D     #启动ssh服务 . 报错如图,解决方案为:创建公私密钥,输入命令后,直接按两次enter键确认就行了
  ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 

  ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
  ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
   再次启动ssh服务   /usr/sbin/sshd/ -D &  yum -y install lsof  lsof -i:22  passwd           #修改容器root密码  测试  ssh localhost

上图中可以看到已经登录到本机了,也就说容器中的主机拥有了ssh远程登录其它主机的能力,当然你也可以登录其他主机。要退出的话,输入命令exit即可

$ vi /etc/hosts

得到容器中的主机的ip地址172.17.0.2(可能和你得到的不一样)

然后在宿主机中开启一个新的终端输入命令

$ ssh [email protected]

输入密码就可以登录了

   配置ssh免密登录

ssh-keygen -t rsa

    cd .ssh/

  cat id_rsa.pub >> authorized_keys

  ssh localhost

  

 


 
 
 


原文地址:https://www.cnblogs.com/394510636-ff/p/9280736.html

时间: 2024-10-12 02:46:43

宿主机ssh免密登录docker容器的相关文章

宿主机-免密登录Docker容器

讨论QQ:1586558083 目录 一.检查系统内核 二.安装Docker 2.1 安装 2.2 查看docker版本 2.3 启动docker 三.建立docker用户和组 3.1 创建用户及组 3.2 使用新创建的用户运行helloworld 3.3 解决报错 四.安装centos镜像 4.1 下载镜像 4.2 查看拥有的镜像 4.3 运行容器 4.4 在容器中运行命令 4.5 查看镜像.容器.数据卷所占用的空间 4.6 容器退出再次进入报错 五.运行容器 5.1 使用命令运行容器 六.刚

SSH免密登录机制

 SSH免密登录机制:(见下图) 1.A先使用ssh-keygen生成一对公钥和私钥:ssh-keygen 2.将A的公钥复制给B一份,并且将其追加到B的授权文件中:ssh-copy-id B 3.接下来ssh B,就能免密登录. 为什么将A的公钥拷给B中的授权文件中就能免密登录了呢? 因为在执行ssh B命令时,B中会用A的公钥随机加密一段密文返回给A,A在接收到密文以后,就会用自己的私钥对密文进行解密, 如果能被解密,就允许免密登录,如果不能被解密,就无法登录.由公钥加密的内容,只能由私钥解

SSH免密登录(并且免yes交互)

问题描述:主机A使用ssh协议远程主机B,默认会开启口令认证,即输入主机B对应用户的登录密码,并且第一次登录时,主机A需验证是否接受来自主机B的公钥,输入"yes/no"完成交互.实现ssh免密登录和免yes交互可提高服务器管理效率. 实现思路:1. 主机A创建密钥对id_rsa,id_rsa.pub,并将公钥id_rsa.pub上传至主机B,保存为/root/.ssh/authorized_keys文件: 2. 修改主机B的sshd服务配置文件/etc/ssh/sshd_config

linux(十)配置ssh免密登录实现

知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业,并登入远端主机. 一.ssh远程登录 今天要和大家说的是,当我们一台客户机要远程登录到服务器的时候,输入密码才能登录成功. 过程流程图: 所以我们在想能不能我们不需要输入密码,直接使用ssh 用户名@服务器ip就可以登录呢? 二.ssh免密登录原理 看到这个图可能大家有一点蒙逼.我给大家解释一下.

Linux主机SSH免密设置解析

为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被访问主机的秘钥存储机制 在被SSH登录的主机中,其实都有一个存储来登录的主机的秘钥的文件,它的名字叫做authorized_keys,它的位置就在root/下面的隐藏目录.ssh中(注:如果这台主机没有被设置任何免秘钥登录,这个文件缺省是不存在的) 在authorized_keys文件中,存储着能够

Shell脚本实现SSH免密登录及批量配置管理

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好.像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用.这一节将详细带大家以shell脚本的形式实现

ssh免密登录linux服务器

Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁.两者匹配时,系统无需密码就能解除锁定. 官方维护文档:https://www.ssh.com/ssh/ 参考文档:https://www.cnblogs.com/ioveNature/p/7919115.html https://www.cnblogs.com

linux上ssh免密登录原理及实现

因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp(secure copy)是linux系统下基于ssh登录进行安全的远程文件拷贝的命令. # 传递文件到远程 scp local_file remote_username@remote_ip:remote_file # 传递文件夹到远程 scp -r local_folder remote_usern

(11)ssh免密登录配置

***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ip地址 exit 返回原来的机器(登录到另一台机器会进入一个新的会话,使用exit命令返回原来的会话) ***把本机器上的文件拷贝到另一台机器上去 scp 文件名 用户名(可以不是当前用户,表示以哪个用户的身份进行拷贝)@ip地址:拷贝的目标目录 上述过程需要人手动输入密码,不利于过程的自动化.因