【docker】sshd
来源:互联网 发布:淘宝代销货图片签协议 编辑:程序博客网 时间:2024/06/05 07:15
虽然说很多人觉得容器应该只运行一个应用,不应该有sshd,但是这里还是以学习的态度记录一下docker搭建sshd的过程。
生成密钥:
ssh-keygen -t rsa
这里我没搞懂passphase是干吗用的,上网查了一下,如果说我采用非密码方式登录,一旦别人登了我的电脑,就可以使用我的key来登录其他的远程主机,所以如果在创建key的时候,输入了passphase,那么以后的每一次登录不仅需要key,还需要输入passphase,这样就算key泄露,或者别人登了我的电脑,他没有passphase也没用,这是对ssh的一点知识补充。
当然默认是可以不用passphase的,也就是在创建key的时候不输入即可。这里还是输入了passphase,12345。
生成的密钥对会放在~/.ssh目录下,修改私钥权限,也即id_rsa,因为这是只能自己用的,所以go权限为0。
chmod 700 ~/.ssh/id_rsa然后把公钥提取出来,准备放进镜像里。
cat ~/.ssh/id_rsa.pub > authorized_keys
编写run.sh,用于启动容器的sshd进程:
#!/bin/bash/usr/sbin/sshd -D
FROM ubuntu:latest MAINTAINER YAORUN apt-get update && apt-get install -y openssh-server RUN mkdir -p /var/run/sshdRUN mkdir -p /root/.sshADD authorized_keys /root/.ssh/authorized_keysADD run.sh /run.sh#RUN chmod 600 /root/.ssh/authorized_keysRUN chmod 777 /run.shEXPOSE 22ENTRYPOINT ["/run.sh"]
然后构建镜像:
docker build -t sshd .
启动容器:
docker run -d -p 50010:22 sshd
查看容器:
docker ps
ssh连接:
ssh root@127.0.0.1 -p 50010
如果是第一次登录,那么会询问是否信任这台服务器,如果yes,那么就会把其公钥和ip放入本地主机的~/.ssh/knownhosts文件下,如果服务器和主机的公钥密钥对改了,那么就无法登录了,因为host文件里记录了之前的ip和公钥对,这是会认为新的服务器的公钥变了,有人做了中间人攻击。解决办法是使用ssh-keygen -R ip,或者删除host文件里额对应的信息。
接着,会让输入passphase,之后就ssh登录进去了。
有个问题,每一次都输入passphase很费劲,可以使用key-gen的agent功能。
使用:
ssh-add
添加passphase到私钥:
这样就不必每一次都输入passphase了。
但是、、、这样会不会与passphase的设计初衷相违背呢?个人感觉会吧。
阅读全文
0 0
- 【docker】sshd
- docker中开启sshd
- Centos6-Docker-sshd
- Docker实践sshd镜像
- docker之ubuntu开启sshd登陆服务
- docker的centos如何启动sshd服务
- sshd
- sshd
- sshd ???
- sshd
- sshd
- 为什么不需要在 Docker 容器中运行 sshd
- Docker应用--创建带有sshd服务的Ubuntu镜像
- Docker中使用supervisor管理开机自启动(redis && sshd)
- sshd安全
- sshd移植
- sshd配置
- sshd配置
- raas的wp
- 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器
- 今年收获不错
- Shop项目--3. 使用ajax获取商品分类列表,并存在redis中
- Cmder默认的命令提示符 λ 改成 $
- 【docker】sshd
- Python处理list中的重复元素(重命名,统计,删除等)
- vue的多层主键的通信
- linux查看网卡信息的几种方法(命令)
- [JavaScript/基础入门一/每天一点点]
- Linux虚拟机下安装配置MySQL
- 894D
- Mac VMware fusion10 Centos7网络配置
- c#中的正则表达式