stackstorm docker中配置ssh免密码登录方式

在docker中配置st2的ssh登录方式折腾了好久,今天终于彻底搞懂了如何重启容器后也不丢失之前的配置,只要容器起来后就可以正常ssh 执行st2中的remote-shell-script 和remote-shell-cmd

1:修改docker-compose.yml  新增挂在目录,目的是将st2使用ssh时的配置放到宿主机的目录中,方便修改维护

主要是将st2中的/etc/st2/st2.conf 映射到st2-etc-config-volume:/etc/st2    

默认的映射目录在(centos7): /var/lib/docker/volumes/ 

进入/var/lib/docker/volumes/

编辑 st2.conf  (配置ssh 运行是指定的用户和秘钥所在目录)

在st2容器中生成秘钥的时候不要用默认的目录,不然容器重启后所配置的ssh就失效了,要把秘钥文件设置到挂在目录,防止容器重启失效

docker-compose up -d  启动

2:进入容器  

或者 先查到容器的id  docker exec -it e01482cc0755 bash

切换到configs目录

ssh-key-gen -t rsa  

秘钥的目录不要放在默认的/home/***中,放在/opt/stackstorm/configs/.ssh/id_rsa

通过分发秘钥,

ssh-copy-id -i /opt/stackstorm/configs/.ssh/id_rsa.pub root@192.168.1.160
这一步有可能会分发失败,可以通过在目标机器中编辑 vim /etc/ssh/sshd_config

将PasswordAuthentication no 改为yes

再执行分发秘钥即可

3:以上操作执行完毕后需要将st2 重启,以加载新的配置使其生效

st2ctl restart  

这样整个在容器中配置ssh 登录多台机器即可完成

针对docker安装的st2 说先将docker-compose.yml 添加新的挂在目录,配置st2.conf

ssh秘钥生成时需要放到挂在目录,防止容器重启失效,

最后重启st2服务,整个过程处理完毕,开心的运行st2的各种远程命名.

原文地址:https://www.cnblogs.com/fly-kaka/p/10882406.html