首先,Google的服务器默认是通过自带的SSH网页端连接的,比较麻烦和容易断开,不是很好用,常见的解决办法有两种一种是通过修改ssh的配置,添加密码的方式进行连接,一种是通过配置公钥进行连接。
密码连接之前有很多通过修改的ssh配置的两个设置然后配置密码即可,但是由于前段时间的更新,这种方式以及不行了,需要开发端口然后再进行修改配置才可以,这样比较不安全了,所以本次不使用密码的方式,同时通过配置密钥的方式进行连接,这种方式更安全的。
其次不管是谷歌云还是亚马逊,在unbuntu22.04的版本之后使用修改配置连接密码的方式是不可行,所以需要密钥的方式进行连接。
本次的配置参考如下官方的的文章连接如下:
https://cloud.google.com/compute/docs/connect/create-ssh-keys?hl=zh-cn
https://cloud.google.com/compute/docs/connect/add-ssh-keys?hl=zh-cn
目录
一、创建SSH密钥
首先,我们需要手动创建的SSH的密码,创建的方式有很多种,可以直接使用XShell进行创建,或者通过Linux或者Windows创建,本次使用Linux的创建密钥的方式。
格式:
bash
ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME
替换以下内容:
KEY_FILENAME
:您的 SSH 密钥文件的名称。例如,如果文件名为
my-ssh-key
,则系统会生成一个名为my-ssh-key
的私钥文件和一个名为my-ssh-key.pub
的公钥文件。
USERNAME
:虚拟机上的用户名。例如cloudysanfrancisco
或cloudysanfrancisco_gmail_com
。对于 Linux 虚拟机,除非您将虚拟机配置为允许 root 登录,否则
USERNAME
不能为root
。如需了解详情,请参阅以根用户身份连接到 Linux 虚拟机。
ssh-keygen
将您的私钥文件保存到~/.ssh/KEY_FILENA
用户
cloudysanfrancisco
的公钥类似于以下内容:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco
bash
ssh-keygen -t rsa -f ~/.ssh/test-key -C testusername
输入以上命令在Linux执行后还需要输入对密钥的密码:
输入的密码是看不见的输入完成之后需要按回车即可,俩边内容要一致。
此时出现以下内容就说明公钥和私钥都已经生成好了。
公钥:我们放到服务器上的
私钥:我们SSH连接时需要使用的
这里不过多去讲
以上就创建好我们的公钥和私钥了。
二、在Google配置
在Google配置我们的生成的密钥,本次演示的不设置密钥过期时间的,如需要配置请仔细查看官方链接有教程
点击元数据---->SSH密码,将我们生成的SSH公钥添加上去就可以。
格式:
没有到期时间的格式:
KEY_VALUE USERNAME
具有到期时间的密钥格式:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
KEY_VALUE
:SSH 公钥值
USERNAME
:您的用户名。例如cloudysanfrancisco
或cloudysanfrancisco_gmail_com
。对于 Linux 虚拟机,除非您将虚拟机配置为允许 root 登录,否则
USERNAME
不能为root
。如需了解详情,请参阅以根用户身份连接到 Linux 虚拟机。对于使用 Active Directory (AD) 的 Windows 虚拟机,必须在用户名前面加上格式为
DOMAIN\
的 AD 域。例如,ad.example.com
AD 中的用户cloudysanfrancisco
的USERNAME
为example\cloudysanfrancisco
。
EXPIRE_TIME
:密钥的到期时间,采用 ISO 8601 格式。例如:2021-12-04T20:12:00+0000
以上,方式就把我们创建的公钥上传到服务器了。
三、使用SSH工具连接
接下来我们就可以使用SSH工具进行远程链接了,导入私钥时还需要输入生成私钥的密码 ,用户名,是我们创建公钥是的用户名
以上就可以通过配置密钥的方式连接的GoogleCloud的服务了。