构建容器优化的操作系统 - 交换 SSH 实现

尼克拉斯·B

TL;DR:我正在尝试修改 sshd_conf 并将二进制文件添加到容器优化的操作系统映像中。修改是不是疯了chromeos-base-2.ebuild

背景
我正在(尝试)使用https://cloud.google.com/container-optimized-os/docs/how-to/building-from-open-source 中的说明构建我自己的容器优化操作系统映像我的目标是交换我们的 SSH 身份验证部分。

为此,我需要执行两个操作:

  1. 修改 sshd_config
  2. 包括一个额外的二进制文件(即可执行文件)

我正在尝试以容器优化的操作系统友好方式来做到这一点。

我的想法是我修改src/overlays/overlay-lakitu/chromeos-base/chromeos-base/chromeos-base-2.ebuild以包含我的二进制文件:

insinto /usr/sbin
doins "${FILESDIR}"/sshauth
fperms 700 /usr/sbin/sshauth

然后更改src/overlays/overlay-lakitu/chromeos-base/chromeos-base/files/sshd_config为包括:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  /dev/null
AuthorizedKeysCommand /usr/sbin/sshauth
AuthorizedKeysCommandUser root

然后我运行emerge-lakitu chromeos-base重新构建我刚刚修改的包。然后我运行./build_image --board=lakitu base并使用它作为 GCE 上的图像。

问题:

  1. 这是疯了吗?
  2. 我的二进制文件包含在生成的映像中,但我更改的 sshd_config 被默认设置覆盖。

我最初的方法是使用 packer 来简单地更改配置并添加二进制文件,但二进制文件需要是可执行的。我想我可以把二进制文件放进去,/var/lib/cloud但这感觉有点脏。

阿迪亚K。

最好使用自定义配置在容器中简单地运行您自己的 sshd 代理。这里有一个很好的例子:https : //docs.docker.com/engine/examples/running_ssh_service/,我在 COS 上进行了测试和工作。

确保使用 iptables 打开服务器正在侦听的端口。 sudo iptables -A INPUT -p tcp --dport <port> -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport <port> -m conntrack --ctstate ESTABLISHED -j ACCEPT

如果需要,您还可以停止内置 sshd 服务并重用主机本身的端口 22。

希望这可以帮助。

编辑:关于:

我的二进制文件包含在生成的映像中,但我更改的 sshd_config 被默认设置覆盖。

确保您已经增加了 ebuild 修订版。chromeos-base-2-r25.ebuild即将符号链接重命名chromeos-base-2-r26.ebuild. 这是必要的,以确保您对包的更改被选中。否则使用缓存中的预构建包。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章