登录远程 App Engine 实例时是否可以使用 ED25519 而不是 RSA?
Is it Possible to Use ED25519 Instead of RSA When Logging Into a Remote App Engine Instance?
当 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 灵活环境时,无法 使用基于 ED25519 的密钥而不是基于 RSA 的密钥(AEF) 实例。
换句话说,如果您要:
删除旧的 RSA 密钥:
rm ~/.ssh/google_compute_*
生成一个 ED25519 密钥:
ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)
#=>
Generating public/private ed25519 key pair.
. . .
注意:当提示输入密钥文件名和位置时,使用绝对路径;使用 relative 路径 returns 出现以下错误:
Saving key "~/.ssh/google_compute_engine" failed: No such file or directory
并尝试登录 运行 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
您将得到以下错误:
ERROR: (gcloud.app.instances.ssh) INVALID_ARGUMENT: Invalid SSH key "$(whoami):ssh-ed25519 $ED25519_PUBLIC_KEY $(whoami)". Expected "[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]" or [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}.
If expiration time is being specified, please refer to RFC3339 for correct format.
但是,您可以找到此 here 的活动功能请求。
当 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 灵活环境时,无法 使用基于 ED25519 的密钥而不是基于 RSA 的密钥(AEF) 实例。
换句话说,如果您要:
删除旧的 RSA 密钥:
rm ~/.ssh/google_compute_*
生成一个 ED25519 密钥:
ssh-keygen -t ed25519 -C "$(whoami)@$(hostname) #=> Generating public/private ed25519 key pair. . . .
注意:当提示输入密钥文件名和位置时,使用绝对路径;使用 relative 路径 returns 出现以下错误:
Saving key "~/.ssh/google_compute_engine" failed: No such file or directory
并尝试登录 运行 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
您将得到以下错误:
ERROR: (gcloud.app.instances.ssh) INVALID_ARGUMENT: Invalid SSH key "$(whoami):ssh-ed25519 $ED25519_PUBLIC_KEY $(whoami)". Expected "[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]" or [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}.
If expiration time is being specified, please refer to RFC3339 for correct format.
但是,您可以找到此 here 的活动功能请求。