google-cloud-platform - 无法连接到 google 实例“google-accounts:调用响应处理程序的错误异常”。
问题描述
无法从浏览器或终端通过 SSH 连接到实例。串口错误显示:
google-accounts: ERROR Exception calling the response handler. [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/'].#012Traceback (most recent call last):#012 File "/usr/lib/python3/dist-packages/google_compute_engine/metadata_watcher.py", line 200, in WatchMetadata#012
我还尝试将磁盘空间从 10gb 增加到 20gb 标准永久性磁盘并重新启动实例。但没有运气。我还尝试通过从快照创建新实例,这也不允许我通过 ssh 连接到该实例。还尝试将 IAM 角色更改为所有者。
来自终端的错误说:
Authentication failed: Exhausted available authentication methods
任何帮助将非常感激。
提前致谢。
解决方案
由于您没有对实例的 SSH 访问权限,您可以在串行控制台中调试问题,您可以按照此文档为特定实例启用串行控制台访问,一旦启用访问,请按照本指南连接到串行端口.
您可以尝试以下故障排除步骤:
- 重启实例
使用最新版本公共映像的实例可以在系统重启后自动调整其分区和文件系统的大小。
- 检查您的防火墙规则
在本地工作站上,运行以下命令:
gcloud compute firewall-rules list
如果缺少防火墙规则,请将其添加回来:
gcloud compute firewall-rules create default-allow-ssh --allow tcp:22
- 以其他用户身份连接
阻止您登录的问题可能仅限于您的用户帐户。例如,可能未为用户正确设置实例上 ~/.ssh/authorized_keys 文件的权限。
通过在 SSH 请求中指定另一个用户名,尝试使用 gcloud 工具以其他用户身份登录。gcloud 工具会更新项目的元数据以添加新用户并允许 SSH 访问。
gcloud compute ssh another-username@$PROB_INSTANCE
- 检查可用空间
要检查空间(磁盘使用情况),只需在终端上运行命令
df -h
将列出磁盘使用情况并获得类似的输出
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 28G 15G 12G 58% /
如果root(mounted on /)使用率为100%,则需要清理tmp目录或重启机器,在root上腾出一些空间。
- 分离磁盘并将其附加到新实例
您可以使用以下 gcloud 命令分离引导磁盘,然后将该磁盘作为辅助磁盘附加到新实例上:
gcloud compute instances delete $PROB_INSTANCE \
--keep-disks=boot
gcloud compute instances create new-instance \
--disk name=$BOOT_DISK,boot=yes,auto-delete=no
gcloud compute ssh new-instance
或者您也可以按照本指南使用控制台执行相同操作。
推荐阅读
- reactjs - 现在不推荐使用 ReactDOM.findDOMNode() 的替代方法是什么?
- node.js - npm 错误!asyncWrite 不是函数
- c# - 如何使用自动生成的 AssemblyInfo 应用程序集:ThemeInfo 属性?
- react-native - onEndReached 在任何 ScrollView React 本机中都无法正常工作
- android - 跟踪写入 adb 文件的事件数
- c# - 聚合根可以引用另一个根吗?
- html - 引导程序 3 到引导程序 4
- google-chrome - 如何让 Chrome 的自动完成下拉菜单仅在我开始输入后出现(而不是在最初的鼠标点击时)?
- android - RemoteViews setImageViewBitmap()不起作用
- dialogflow-es - 如何在 Dialogflow 数字字符串实体中支持“双”和“三”?