gpt4 book ai didi

ubuntu - 没有用于本地开发的 auth 登录 ssh

转载 作者:行者123 更新时间:2023-12-02 14:10:30 25 4
gpt4 key购买 nike

我正在尝试设置一个没有任何密码的本地开发环境。我将 docker 与安装了 sshd 服务的默认容器一起使用。我的想法是将 docker box 传播给我们的团队,并从登录命令中删除所有密码提示。

我试图将默认公钥添加到 authorized_keys 文件,但 ssh 服务似乎总是在寻找 id_rsa 文件。显然我不能为另一台电脑提供我的 id_rsa key 。所以要么我需要弄清楚如何让 ssh 查找另一个 key 文件,要么我完全禁用密码提示,但我找不到任何有用的信息。

有什么想法吗?

编辑:因为这对一些人来说有点困惑:我需要一个到服务器的 ssh 连接,而不需要在本地机器上生成公钥。我的总体目标是仅禁用密码提示并允许所有用户无需密码即可登录。

关心它有多安全,因为我们只将这些容器用于本地开发。

最好的问候,提前致谢

编辑:

临时解决办法是

sshpass -p mypassword ssh -o StrictHostKeyChecking=no -p 2222 user@server sh myfile.sh

最佳答案

免责声明:这个解决方案不是人们想要在他的生产服务器上实现的东西。

要完全摆脱 ssh 身份验证,您需要在 Dockerfile 中添加以下行:

RUN echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config

以上是不言自明的。

RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

以上是不言自明的。

RUN echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config

禁止向用户显示目标的公钥指纹 - 无需采取任何接受/拒绝操作。

RUN passwd -d root

从 root 用户(docker 的默认用户)中删除当前密码。


最后一个很棘手。从技术上讲,您没有在开始时为 root 分配密码。但是如果你查看 /etc/shadow 文件,你会发现它也不是空的:

root:*:18855:0:99999:7:::

星号毁了一切。如果你运行最后一个命令,你会得到:

root::18855:0:99999:7:::

只有这样才被认为是一个空密码

来源:

  1. https://man7.org/linux/man-pages/man5/sshd_config.5.html
  2. https://man7.org/linux/man-pages/man1/ssh.1.html
  3. https://man7.org/linux/man-pages/man5/shadow.5.html

关于ubuntu - 没有用于本地开发的 auth 登录 ssh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com