UJI*_*JIN 6 ssh google-compute-engine docker
背景:
host.container。user@gmail.com.ssh从container到host,而不被提示输入user密码。问题:
在从容器成功连接到主机后的几分钟内user/.ssh/authorized_keys,Google 本身的某个进程会对其进行“修改”。据我了解,此过程附加了一些连接到 VM 所需的 ssh 密钥。但就我而言,该过程似乎覆盖了我从容器生成的密钥。
设置:
我连接到host使用 Google Compute Engine GUI,按下 SSH 按钮。
然后我按照AskUbuntu 上这个答案中描述的步骤进行操作。我为useron设置了密码host:
user@host:~$ sudo passwd user
Run Code Online (Sandbox Code Playgroud)
我设置PasswordAuthentication为yesin sshd_config,然后重新启动sshd:
user@host:~$ sudo nano /etc/ssh/sshd_config
user@host:~$ sudo systemctl restart sshd
Run Code Online (Sandbox Code Playgroud)
我使用 进入 Docker 容器bash,生成密钥,然后将其复制到主机上:
user@host:~$ docker exec -it container /bin/bash
(base) root@container-id:# ssh-keygen
(base) root@container-id:# ssh-copy-id user@host
Run Code Online (Sandbox Code Playgroud)
密钥成功复制到主机,主机被添加到known_hosts文件中,我能够从容器连接到主机而不会被提示输入密码(正如我在ssh-copy-id执行过程中给出的那样)。
现在,如果我从主机分离,等一段时间后再次附加,我会发现该user/.ssh/authorized_keys文件包含一些由 Google 生成的密钥,但没有我的密钥的踪迹(允许容器连接到主机的密钥))。
比一切都更让我困惑的是,我们之前一直使用这个过程,我们从来没有遇到过这样的问题。同一主机上的某些帐户仍然具有来自不再存在的容器的密钥!
有没有人对这种行为有任何想法?你知道有什么解决方案可以让我在需要时保留密钥吗?
看起来帐户守护进程正在执行此任务。您可以参考此讨论主题以获取有关此内容的更多详细信息。
您可能会发现操作系统登录 API是一个更简单的管理选项。启用后,您可以使用单个gcloud 命令或API 调用来添加 SSH 密钥。
| 归档时间: |
|
| 查看次数: |
1562 次 |
| 最近记录: |