我在Google云中创建了一个Linux VM,现在我正试图通过SSH访问VM。
我能够SSH到服务器,如果我通过接口进入控制台,但我正在尝试生成一个可移植的私钥文件(pem),我可以从任何地方使用它远程到服务器。
我可以在创建虚拟机的过程中轻松地在AWS或Azure上实现这一点,但在GC上似乎并非如此。
我理解你的意思,但谷歌会更自动地做到这一点。
在任何本地计算机中,首先获得具有正确访问权限的服务帐户json。
授权gcloud,
gcloud auth activate-service-account --key-file=KEY_FILE.json
然后,
gcloud compute config-ssh [--ssh-config-file=SSH_CONFIG_FILE] [--ssh-key-file=SSH_KEY_FILE]
您可能已经有ssh文件,但如果您只是让gcloud生成它就没问题。
最后你可以通过这台计算机从任何计算引擎进入ssh,
gcloud compute ssh [USER@]INSTANCE
然而,下次在同一台计算机上,您只需要使用gcloud compute ssh
再次访问它。
在工作站上打开终端并使用ssh-keygen命令生成新密钥。指定-C标志以使用您的用户名添加评论。
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]
其中:[KEY_FILENAME]
是您要用于SSH密钥文件的名称。例如,my-ssh-key的文件名生成名为my-ssh-key的私钥文件和名为my-ssh-key.pub的公钥文件。
[USERNAME]
是您将应用此SSH密钥的用户。
限制对私钥的访问,以便只有您可以读取它,没有人可以写入它。
chmod 400 ~/.ssh/[KEY_FILENAME]
其中[KEY_FILENAME]
是您用于SSH密钥文件的名称。对需要新密钥的每个用户重复此过程。
如果使用ssh-keygen
工具在Linux工作站上创建了密钥,则密钥将保存在以下位置:
公钥文件:~/.ssh/[KEY_FILENAME].pub
私钥文件:~/.ssh/[KEY_FILENAME]
其中[KEY_FILENAME]
是SSH密钥的文件名,它是在创建密钥时设置的。
要从GCP控制台添加或删除项目范围的公共SSH密钥:
在Google Cloud Platform Console中,转到项目的元数据页面。它可以在GCE菜单下找到。
在SSH密钥下,单击“编辑”。
修改项目范围的公共SSH密钥:要添加公共SSH密钥,请单击页面底部的“添加项目”。这将生成一个文本框。复制公共SSH密钥文件的内容并将其粘贴到文本框中。对要添加的每个公钥SSH密钥重复此过程。
完成后,单击页面底部的“保存”。
使用ssh连接到实例
在终端中,使用ssh命令和私有SSH密钥文件连接到您的实例。指定您要连接的实例的用户名和外部IP地址。
ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]
其中:[PATH_TO_PRIVATE_KEY]
是私有SSH密钥文件的路径。
[USERNAME]
是连接到实例的用户的名称。创建SSH密钥时指定了公共SSH密钥的用户名。如果实例具有该用户的有效公共SSH密钥并且您具有匹配的私有SSH密钥,则可以作为该用户连接到该实例。
[EXTERNAL_IP_ADDRESS]
是您的实例的外部IP地址。如果连接成功,您可以使用终端在您的实例上运行命令。完成后,使用exit命令断开与实例的连接。
我找到了这个答案,只想更新一下对我有用的内容
在您的机器上安装gcloud
客户端(无论您希望连接到VM的哪台机器)。
gcloud auth activate-service-account --key-file=[keyfile_for_project].json
ssh
密钥对
$(which ssh-keygen) -t rsa -C "[email protected]"
id_rsa.pub
中创建的公钥添加到VM的元数据中(Mohit Kumar的答案中包含的精彩截图)
cat $PWD/id_rsa.pub
(将此输出粘贴到SSH密钥元数据中)ssh
中创建的私钥将id_rsa
添加到VM实例
ssh -v -i id_rsa [user]@[external_ip]
如果你想让这个便携式,只需随身携带私钥(id_rsa
)公钥(id_rsa.pub
)
对于SSH访问,您不会使用pem
密钥。在您的客户端计算机上,您应该运行(如果在unix / linux系统中)ssh-keygen
,它将指导您创建ssh密钥(默认为RSA)。然后,您需要将公钥(~/.ssh/id_rsa.pub
或创建期间指定的文件)添加到服务器上的~/.ssh/authorized_keys
。