就在昨天,我能够通过我的本地 ssh 客户端连接到我们的开发实例,使用实例的自定义元数据中 sshKeys 下列出的几个 ssh 密钥之一(老式方式)。(选中“阻止项目范围的 ssh 密钥”)。同样在那天下午,在连接时,我正在做一些方便第二次 ssh 会话的事情。我尝试通过本地 ssh 客户端打开第二个连接,并得到“权限被拒绝(公钥)”。我尝试从实例控制台页面打开第二个连接,但它也无法连接。同时,我使用的 ssh 会话继续正常工作。
今天早上,我根本无法在该实例上进行 ssh 会话。
我记得昨天做的唯一一件最不寻常的事是在我的主目录中使用 chmod,将其设置为“777”。
我尝试提取 sshKeys 元数据,然后再次尝试控制台 ssh。没有喜悦。然后我查看了串行端口 1 的日志,并注意到了这一点,当我尝试它时,时间戳显示了大约 GMT:
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
Nov 28 21:26:49 bitnami-trac-dm-87ea google-accounts: INFO Removing user <redacted>.
我可以在串行端口上获得密码提示,但据我所知,我从未设置过密码访问。
这可能是把你锁在外面的原因。
SSH 守护进程非常偏执(有充分的理由),它会在允许连接之前检查各种权限。如果您的
.ssh/authorized_keys
文件可由服务器上的其他用户写入,则 SSH 将不允许其中列出的公钥的传入连接。(如果它检测到您的私钥太可读/可写,它也会对出站连接执行相同的操作。)