前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker ssh秘钥免密登录

docker ssh秘钥免密登录

作者头像
py3study
发布2020-04-22 11:47:04
2.3K0
发布2020-04-22 11:47:04
举报
文章被收录于专栏:python3python3

一、概述

有一台跳板机,已经实现了免密登录后端服务器。但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器。

虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置都消失了。

是否可以在生成新的django镜像时,也能免密登录后端服务器呢?答案是可以的!

二、实现过程

环境说明

跳板机

操作系统:centos 7.6

ip地址:192.168.28.229

后端主机

操作系统:centos 7.6

ip地址:192.168.28.218

制作docker镜像

django_base目录结构如下:

代码语言:javascript
复制
./
├──?dockerfile
├──?id_rsa
│???├──?id_rsa
│???└──?id_rsa.pub
├──?pip.conf
├──?requirements.txt
├──?run.sh
└──?sources.list

dockerfile

代码语言:javascript
复制
FROM?ubuntu:16.04
#?修改更新源为阿里云
ADD?sources.list?/etc/apt/sources.list
ADD?.?/
#?时区为上海
ENV?TZ?Asia/Shanghai

#?设置时区,设置utf-8编码,安装django,添加任务计划
RUN?apt-get?update?&&?apt-get?install?-y?tzdata?locales?python3-pip?cron?openssh-server?&&?apt-get?clean?all?&&?\
????ln?-snf?/usr/share/zoneinfo/$TZ?/etc/localtime?&&?echo?$TZ?>?/etc/timezone?&&?\
????locale-gen?en_US.UTF-8?&&?\
????mkdir?~/.pip?&&?cp?/pip.conf?~/.pip?&&?pip3?install?--upgrade?pip?&&?\
????pip3?install?-r?/requirements.txt?&&?\
????mkdir?~/.ssh?&&?cp?-r?/id_rsa/*?~/.ssh

#?解决中文乱码问题
#RUN?locale-gen?en_US.UTF-8
ENV?LANG?en_US.UTF-8
ENV?LANGUAGE?en_US:en
ENV?LC_ALL?en_US.UTF-8

#?添加启动脚本
ADD?run.sh?.
RUN?chmod?755?run.sh
ENTRYPOINT?[?"/run.sh"]

id_rsa文件夹里面的2个文件,就是跳板机的ssh秘钥,copy进来即可。

pip.conf

代码语言:javascript
复制
[global]
index-url?=?http://pypi.douban.com/simple
trusted-host?=?pypi.douban.com

requirements.txt

代码语言:javascript
复制
Django==2.1.8
paramiko==2.7.1

run.sh

代码语言:javascript
复制
#!/bin/bash

#?收集主机公钥,写入known_hosts,避免出现Are?you?sure?you?want?to?continue?connecting?(yes/no)?
ssh-keyscan?-H?-t?ecdsa?-p?22?192.168.28.218?>>?~/.ssh/known_hosts

sources.list

代码语言:javascript
复制
#?deb?cdrom:[Ubuntu?16.04?LTS?_Xenial?Xerus_?-?Release?amd64?(20160420.1)]/?xenial?main?restricted
deb-src?http://archive.ubuntu.com/ubuntu?xenial?main?restricted?#Added?by?software-properties
deb?http://mirrors.aliyun.com/ubuntu/?xenial?main?restricted
deb-src?http://mirrors.aliyun.com/ubuntu/?xenial?main?restricted?multiverse?universe?#Added?by?software-properties
deb?http://mirrors.aliyun.com/ubuntu/?xenial-updates?main?restricted
deb-src?http://mirrors.aliyun.com/ubuntu/?xenial-updates?main?restricted?multiverse?universe?#Added?by?software-properties
deb?http://mirrors.aliyun.com/ubuntu/?xenial?universe
deb?http://mirrors.aliyun.com/ubuntu/?xenial-updates?universe
deb?http://mirrors.aliyun.com/ubuntu/?xenial?multiverse
deb?http://mirrors.aliyun.com/ubuntu/?xenial-updates?multiverse
deb?http://mirrors.aliyun.com/ubuntu/?xenial-backports?main?restricted?universe?multiverse
deb-src?http://mirrors.aliyun.com/ubuntu/?xenial-backports?main?restricted?universe?multiverse?#Added?by?software-properties
deb?http://archive.canonical.com/ubuntu?xenial?partner
deb-src?http://archive.canonical.com/ubuntu?xenial?partner
deb?http://mirrors.aliyun.com/ubuntu/?xenial-security?main?restricted
deb-src?http://mirrors.aliyun.com/ubuntu/?xenial-security?main?restricted?multiverse?universe?#Added?by?software-properties
deb?http://mirrors.aliyun.com/ubuntu/?xenial-security?universe
deb?http://mirrors.aliyun.com/ubuntu/?xenial-security?multiverse

生成镜像

代码语言:javascript
复制
cd?django_base
docker?build?-t?django_base:v1?.

运行镜像

代码语言:javascript
复制
docker?run?-it?django_base:v1?/bin/bash

测试ssh免密

代码语言:javascript
复制
ssh?192.168.28.218

不需要输入密码,就表示成功了。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、实现过程
    • 环境说明
      • 制作docker镜像
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com