docker上 ssh 登录 container

本文详细介绍了如何在Docker容器中设置SSH服务,包括基于口令和密钥的验证方式,以及如何通过Dockerfile构建支持SSH登录的Ubuntu镜像。最后,展示了如何运行容器并使用SSH登录到容器内部。
摘要由CSDN通过智能技术生成

SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。

 从客户端来看,SSH提供两种级别的安全验证:

1、基于口令的验证

     只要知道帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但缺点是:不能保证你正在连接的服务器就是你想连接的服务器。以下是我画了的登录验证流程:

 

      当第一次链接远程主机时,会提示您当前主机的”公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

2、基于密钥的验证

    这种验证的前提是客户端需要生成一对密钥,将公钥放到需访问的远程服务器。这种验证比上一种的好处是,不能仿冒真正的服务器,因为要仿冒必须拿到客户端生成的公钥。缺点就是验证等待过程稍长些。

 

 

如何生成密钥:

1、在客户端打开终端,执行ssh-keygen,该命令会默认在~/.ssh/目录下创建id_rsa、id_rsa.pub两个文件,分别为您的公钥和私钥。

2、将公钥id_rsa.pub文件拷贝到服务器端的~/.ssh/authorized_keys文件中,有三种方法:

·        通过scp拷贝:

·         例:scp -P 22 ~/.ssh/id_rsa.pub user@host:~/authorized_keys    #可选参数-P代表指定用端口号22

·        通过ssh-copyid程序:

·         例:ssh-copy-id user@host  #此种方式简单,不需追加改文件名,但不能指定端口号,默认以22端口

·        通过cat方法:

·         例:cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat>> ~/.ssh/authorized_keys’

 

 

在宿主主机上生成ssh密钥对,并创建authorized_keys 文件:

root@ubuntu-daisy:~/daisy_dockerbuild/sshd_ubuntu# ssh-keygen -t rsa

root@ubuntu-daisy:~/daisy_dockerbuild/sshd_ubuntu#cat   ~/.ssh/id_rsa.pub>authorized_keys

 

root@ubuntu-daisy:~/daisy_dockerbuild/sshd_ubuntu# ls

authorized_keys  Dockerfile 

 

首先准备好基础镜像ubuntu,然后编写Dockerfile构建自定义镜像,达到能自定义登录功能

 

FROM ubuntu

 MAINTAINER daisy_hu"diana_hu@foxmail.com"

  # 更新源,安装sshserver

  RUN exporthttp_proxy=http://proxy-prc.intel.com:911 &&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值