docker上 ssh 登录 container

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"[email protected]"

  # 更新源,安装sshserver

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值