微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

登录远程 App Engine 实例时是否可以使用 ED25519 代替 RSA?

如何解决登录远程 App Engine 实例时是否可以使用 ED25519 代替 RSA?

当 Google Cloud SDK (gcloud) 用户执行时:

gcloud app instances ssh \
$AEF_INSTANCE_ID \
--project $GCP_PROJECT_NAME \
--service $AEF_APP_SERVICE_NAME \
--version $AEF_APP_VERSION_NAME

#=>

WARNING: The private SSH key file for gcloud does not exist.
WARNING: The public SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: SSH keygen will be executed to generate a key.
Generating public/private rsa key pair.
. . .

首次生成 RSA 密钥:

ls -1 ~/.ssh/google_compute_*

#=>

google_compute_engine
google_compute_engine.pub
google_compute_kNown_hosts

此时是否可以使用 ED25519 代替 RSA?

解决方法

目前,在登录正在运行的 App Engine 柔性环境 (AEF) 实例时,不能使用基于 ED25519 的密钥而不是基于 RSA 的密钥。

换句话说,如果您要:

  1. 删除旧的 RSA 密钥:

    rm ~/.ssh/google_compute_*
    
  2. 生成一个 ED25519 密钥:

    ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)
    
    #=>
    
    Generating public/private ed25519 key pair.
    . . .
    

    注意:当提示输入密钥文件名和位置时,使用绝对路径;使用相对路径返回以下错误:

    保存密钥“~/.ssh/google_compute_engine”失败:没有那个文件或目录

  3. 并尝试登录正在运行的 App Engine 柔性环境 (AEF) 实例:

    gcloud app instances ssh \
    $AEF_APP_INSTANCE_ID \
    --project $GCP_PROJECT_NAME \
    --service $AEF_APP_SERVICE_NAME \
    --version $AEF_APP_VERSION_NAME
    

收到以下错误:

错误:(gcloud.app.instances.ssh) INVALID_ARGUMENT:SSH 密钥无效“$(whoami):ssh-ed25519 $ED25519_PUBLIC_KEY $(whoami)”。应为 "[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]" 或 [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]" }.

如果指定了过期时间,请参考RFC3339的正确格式。

但是,您可以找到针对此 here 的有效功能请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?