转文:谷歌云GCP上创建一台云主机并SSH登录

By | 2019-11-05

原文: https://zhuanlan.zhihu.com/p/55893138

体验:谷歌云GCP上创建一台云主机并SSH登录

因为GCP谷歌云提供免费一年300美金的体验金,所以,体验前需要准备的道具有:一张支持外币的信用卡,万事达,VISA卡都可以。

因为国内无法登陆GCP云平台,所以还需要:一台能联网(科xue上网)的设备,最好是PC。创建一台GCP VM

注册登录,映入眼帘的是一个简朴的页面,欢迎登录,这就是传说中的GCP的首页了。

谷歌云的首页

很久以前,笔者用过谷歌的GAE(Google App Engine)搭建了一个神奇的上网神器,一个用Python写的应用—-GoAgent,GAE现在是一个叫App Engine的PaaS平台,是与Compute Engine,k8s Engine并列的设定。

我们今天要体验的谷歌虚拟机就是Compute Engine的,一些云服务商总是不喜欢把虚拟机叫虚拟机,含糊其辞的叫云主机,谷歌的Compute Engine官方介绍就是叫虚拟机(VM)。

来,创建一个VM虚拟机吧。

开始创建

打开VM实例的界面,系统提示说我可以导入VM镜像,不知道我本地在VMware Workstation创建的虚拟机能不能传上去,我只是好奇,并不打算自找麻烦,总觉得这个导入虚拟机的提示,别的云服务商没有,这也算个特点吧,挺好的。

下一步:点击创建。

设置配置,除了可用区,这台虚拟机别的配置都可以改。

选择可用区,可用区选项还是挺多的,包括我们的宝岛台湾,随便选个美国的区吧,圆我一个数据入美的梦。

内存方面的话,选择一个常见的入门配置1核1G,可勾选扩展内存,我这个机型最多能勾选到52GB内存。

操作系统的话,就选Ubuntu 18.04吧,有新的,坚决不选旧的。

点击创建,即创建成功

勾选允许HTTP和HTTPS,其实就是开了俩常用的端口,80和443。注意,这个是可以用赠送的300美刀来消费的,为了用自带的SSH连,所以还得打开22端口。

登陆进去看看吧,先瞧瞧自带的SSH。

登陆中
初始化的GCP VM Ubuntu

感觉怪怪的,换成SSH登录吧。

SSH登录

MAC用户的话,用自带的Terminal登录,Windows的话还是Putty,因为都算第三方的工具,所以,GCP要求你得用公钥私钥匹配,记得把21,22端口端口打开哦。

1,MAC下操作:

键入以下命令:

$ ssh-keygen -t rsa -f ~/Desktop/key(目标目录) -C skmc4boxer(登录的用户名)

过程中需要输入两遍登录密码(passphrase)。

操作完成后生成这两个文件:key-pub和key。

key.pub是公钥,要传到GCP上,key就是你自己的私钥,ssh登录的时候要用。

如何上传公钥?

mac下的话,打开key.pub,复制下来,然后点击进入实例详情页面,点击修改按钮:

对VM进行修改设置

然后找到“您有0个SSH密钥”,点击显示和修改,然后点击添加,把你复制的内容贴上去。

点击这里添加SSH密钥

添加完密钥之后是这个样子滴:

添加好的密钥的模样

然后点击保存,退出当前设置。

转到Terminal登录,键入下面命令

$ ssh -i ~/Desktop/key(私钥所在地目录) skmc4boxer{user name}@{your ip address}

然后输入你的密码:

passphrase

然后就登录成功了

2,在Windows下Putty登录

在Windows下用Putty也一样,也是公钥和密钥两个,操作方式类似,Putty需要设置一下密钥的位置。

打开Puttygen,所有设置都可以默认,直接点击Generate生成,进度条开始读取,需要你不断在空白处移动鼠标,生成加密的公钥数字。

生成默认的公钥是这样滴:

用户名和密码可以完全自己定义

上方(红方框里)以ssh-rsa开头的是公钥,下面分别是你需要设置的用户名(上面的rsa-key-20190120可修改为别的名字)和密码。

分别保存public-key和private-key到本地的任意位置,跟上面的一样。

然后把公钥添加到VM后台:

左侧的skmc4boxer就是刚才在puttygen设置的用户名,接下来登录要用用户名,保存。

然后,就开始用Putty登录:

设置IP,然后点击左侧的Auth,添加你保存的private-key,然后保存即可。

然后就像平常一样填写用户名和密码进行登录了。

到此,一个正常可用的云主机就设置好了。

一点感受:

谷歌不愧是一家有工程师文化的公司,初一看,GCP的界面太丑,而且操作逻辑跟AWS和阿里云差异不是一般的大,慢慢一看,觉得整套创建流程还是挺合理的,设置也非常全面,精细,开放性留给用户的操作空间很大。

印象比较深的是网络标记功能,设置虚拟机的端口时可以很灵活。用户需要在防火墙设置访问规则,设置开放端口,设置的过程中会要求你选择目标,目标选“指定的目标标记”,然后添加一个目标标记(下图红框中的”http-server”)。

当需要启动这条防火墙规则的时候,然后在虚拟机的网络标签里选择这个标记即可,然后这条规则就启用了,80端口和443端口就开启了

添加防火墙规则

nmap扫一下,22和80端口已经被监听了。

nmap扫描监听的端口

安装一个apache服务器试试,命令行里键入:

$ sudo apt-get install apache2

浏览器里打开一下:

能打开的话证明已放开80端口

往云主机里传输文件

使用一个云主机还经常要有的操作是传文件,笔者推荐这么往虚拟机里传文件:

通常传文件的时候,vsftpd可以,但是设置炒鸡麻烦,传输速度慢。FileZilla也可以,但是设置还是麻烦,传输速度没有最慢只有更慢。

上图是把要传的文件先放到aws的s3上,然后wget下载到主机上,速度达到41MB每秒。(开不开心,惊不惊喜?)

AWS s3里的jar包(你大概现在还能用这个链接下载下来)
wget下载这个jar包

我个人还是喜欢利用对象存储来传文件,然后wget命令下载下来,速度简直不要不要的,而且,少开一个端口,设置省事儿了,原则上来说,也更安全了不是吗?如果传一批零碎小文件的话,我习惯打成压缩包传上去再解压。

發佈回覆