本文由 简悦 SimpRead 转码, 原文地址 https://zhuanlan.zhihu.com/p/40983101shell
很久没更专栏了,都快荒废了,这段时间发生了不少事,往事不提,开始更正文:vim
众所周知,GCP 的中国台湾节点对大陆十分友好,但小白在新建、配置实例的时候会碰到不少困难,我在第一次使用的时候,也遭遇很多坑,有许多设定是极其反人类的。浏览器
下面分享一些经验,给后面的同窗作参考。安全
阅读本文的前提:服务器
2. 可以正常访问 http://google.com 域名的爱国工具;网络
3. 已注册 GCP;ssh
4. 已绑定信用卡并得到新注册用户 300 美金的赠送余额。工具
登录 GCP 平台的控制面板:网站
https://console.cloud.google.comconsole.cloud.google.comui
打开侧边栏,找到「Compute Engine」,在弹出的二级列表中,单击「VM 实例」:
GCP 平台的实例,都是依附于对应的项目下的,因此你须要先新建一个项目,项目名 ID 保持默认,项目名称可按照本身的喜爱自定,单击「建立」便可:
首次建立项目,须要一段时间,请耐心等待:
继续等,若是时间过长,请刷新浏览器。
当「建立」按钮由灰蓝变蓝,就能够建立实例了:
挨个讲一下建立实例时的选项:
1. 名称自定,使用默认的也行。
2. 区域选择「asia-east1(中国台湾)」,地区都是中国台湾彰化县,有 a、b、c 可选,我选的是 c,听说网络质量更好一些。
3. 机器类型选择「微型」,租用机器自己按时付费,月计 5\(,流量费 0.23\)/GB,不包含在机器价格内,额外计算,也是用多少算多少,挺金贵的。
4. 「容器」功能至关于连接一个远程镜像,当作系统安装盘,用 GCP 自带的镜像就行了,都是最新版的系统,不用选。
5. 点击「启动磁盘」的「更改」按钮,能够在 GCP 自带的系统安装镜像里选一个,我习惯用 Debian 系 Linux,选择 Debian 9 或是 Ubuntu 16.04 都是能够的。默认磁盘容量 10GB,富强上网足够,选择更大容量的磁盘需额外计费。
6. 「身份和默认 API 权限」及关联选项保持默认
7. 「防火墙」选项下的 http 和 https 必须开启,不然你将没法经过这两个协议访问到机器,好比在 GCP 实例上建设网站,访客没法访问
8. 不用单独展开「管理、安全、磁盘、网络、单独租用」作额外设置,点击「建立」便可新建实例:
新建立的实例以下:
下面咱们能够在浏览器里远程链接服务器,在命令行里直接设置 root 用户密码,使用 root 用户登陆等。
在「链接」功能的下拉菜单里,点击「在浏览器窗口中打开」:
稍后出现命令行操做界面:
输入:
sudo passwd root
为 root 用户设置密码。
建议在在线随机密码生成器 生成一个包含大小写字母、特殊符号、数字的 30 位以上随机密码,将密码复制下来粘贴(Ctrl+C)到命令行中,按回车,再输入一次密码,按回车,使密码生效:
使当前用户具有 root 权限:
su root
再次输入密码,受权成功:
编辑 ssh 服务配置文件:
vim /etc/ssh/sshd_config
找到这一行:
PermitRootLogin prohibit-password
将「prohibit-password」改为「yes」,使容许 root 用户登陆:
而且将「PasswordAuthentication」从默认的「no」改为「yes」:
最后是这样的:
顺便把 ssh 端口号(Port)改为高端口(范围 10000~65535),避免密码在默认端口被暴力破解:
按 Esc,输入:
:wq
确认保存并退出。
从新启动 ssh 服务,使更改生效:
/etc/init.d/ssh restart
特别地,GCP 配置了本身的防火墙(相似阿里云的安全组规则),默认只容许 2二、80、44三、3306 等经常使用端口传入,这就意味着若是咱们设置了高端口用本地 ssh 工具链接,以及使用带有动态端口切换功能的敬业代理时,防火墙规则会形成许多麻烦,因此咱们要把全部端口的访问都打开。
设置非 22 端口用 GCP 自带工具作 ssh 链接,若是未在防火墙里容许放行对应的端口,即便指定对应端口作登录也会登陆失败(疯起来我寄几都咬)。
返回实例管理列表,点击最右边的竖排省略号,在展开的列表点击「查看网络详情」:
鼠标移到左侧列表并展开:
点击「防火墙规则」:
默认处于「入站」选项卡,点击「建立防火墙规则」:
设置好防火墙规则名称后,「流量方向」选择「入站」:
「对匹配项执行的操做」保持默认「容许」。
「目标」选择「网络中的全部实例」,「来源 IP 地址范围」输入「0.0.0.0/0」(容许全部 IP)。
「次要来源过滤条件」保持默认「无」,「协议和端口」选择「所有容许」,最后点击「建立」:
等待建立完成:
一样给出站规则设置放行全部 IP、协议和端口,由于法治上网的代理须要容许主机去访问目标网站,把得到的流量转发给客户端,方法如法炮制,直接上图:
特别地,「来源过滤条件」除了能够设置容许所有内网机器访问外网,你还能够指定「子网」规则之一,如勾选「10.140.0.0/20」(亚洲东部 1 区,即中国台湾机房),不一样地域的实例处于不一样的子网,从逻辑上,它们从属于同一 GCP 帐户下的同一项目中,彼此之间构成了一个局域网。
在这里「全选」也是能够的
不一样地域的机房拥有不一样的子网 IP 地址
GCP 管理面板首页可直接查看当前实例所在子网的 IP 地址
建立:
至此,全部的设置就完成了。凭服务器 IP、端口、root 用户名、root 用户密码,就能够在 XShell 里链接到机器了。
3.1
在建立实例时,偶尔会发现「启动磁盘」项没有「更改」按钮,也没有标注系统名称,这意味着实例建立后是没有系统的,更无从远程链接,使用后续功能。碰到这种状况,请返回 VM 实例控制面板首页,先将当前磁盘彻底为空的机器删除:
接着,将左侧列表展开,点击「映像」:
在列表中点击须要安装的系统:
点击「建立实例」:
注意事项和第一章「建立实例」的要求相同:
3.2
因为安全方面的考虑,你仍然能够选择自定义用户名,并用对应的密钥登陆,你能够先在 Xshell 中生成一个新的密钥文件:
工具(T)→新建用户密钥生成向导(W):
选项默认,下一步:
继续:
密钥名称自定,设置什么样的密钥名称,就意味着你以什么样的用户名登陆系统(不可设置为 root),用户密钥加密密码属于可选项,可不填,意思就是在这个密钥的外壳又添加一个密码,使用密钥的时候须要输入密码:
是(Y):
「用户密钥」里,可看到咱们刚才建立的,名称叫「exp」的密钥:
接着,选中要导入到 GCP 钥匙串的密钥,点击右边的「属性(P)」,并切换到「公钥」选项卡:
接着,将公钥里的内容(以 ssh-rsa 开头的),将到末尾两个等于号(=)处的内容,复制出来:
而后,登录 GCP 的控制面板,点击侧边栏的「元数据」:
点击第二个选项卡——「SSH 密钥」:
修改:
添加一项:
把刚才复制来的公钥粘贴进来,此时会提示密钥格式无效:
不要着急,在密钥末尾的两个等于号以后,打一个空格,再输入任意字母 + 英文数字,ssh 密钥就建立成功了,同时空格后面输入的内容,就是你登陆 GCP 实例的用户名:
保存生效:
而后,在 Xshell 里创建新链接:
名称(N)自定,主机(H)填 IP,端口号(O)默认 22,若是在 sshd 文件里更改了,请自行用新的端口号:
点击侧边栏的「用户身份验证」,方法(M)选择「PublicKey」,用户名填你刚才在 GCP 后面板→元数据→ssh 密钥里,在「== 」后面设置过的用户名。
「用户密钥」选择你刚才用 Xshell 密钥生成工具生成的那个,点击下方「肯定」保存。
快捷键「Alt+O」快速启动链接,选中刚才设置好的那台机器,点击链接(C),就能够成功连上 GCP 实例了,用户名就是咱们刚才设置的「exp」:
写下你的评论...
还有哪些靠谱加密方式?
密钥 + 任意高端口登陆就很安全啦,比密码登陆安全,注意密钥文件不要随便暴露给别人
不赞,可是分享到朋友圈。
您的转发是支持个人动力
很是详细,感谢
还有哪些靠谱加密方式?
密钥 + 任意高端口登陆就很安全啦,比密码登陆安全,注意密钥文件不要随便暴露给别人
抱歉我没说清楚,我说的不是 ssh 登陆,我是说***酸酸乳的靠谱加密方式。貌似 aes 加密已经 GG 了。。。
唉,太贵了,最便宜的都要 4.28 刀,还不包括流量费用。流量费用 0.23 刀一个 G。用不起用不起。快到期了,正发愁之后用什么呢。
第一年有送 300 刀给你免费用的呀,刨掉最低配机器钱,分摊每月折合流量也有 80G 左右可用,你一我的爱国上网用确定够,先占一年便宜再说呗
已经用了 11 个月了,还剩 1 个月到期。不过找到了 AWS 了,又能蹭一年了
图文很是详细,太赞了,居然仍是个妹纸~
尝试了一下感受延迟仍是比较严重... 可是好像也没有很好的解决方法 orz
协议和端口所有容许。。。看得我很慌
手机党操做: wc 那步后如何保存呢,我只有本身关了,而后重启 SSH 显示失败
就是重启 SSH 使更改生效显示失败,另外 SSR 手机端已经能够上网,可是个人谷歌软件都没法升级,没有速度,不知道怎么破
想知道这东西理论上会不会被 q 掉,好比直接禁止访问台湾的 GCP 服务器