怎么使用永久免费的VPS服务器 Google Cloud Shell

1,716次阅读
没有评论
内容纲要

CLOUD SHELL
在任意浏览器中通过命令行管理您的基础架构和应用

Google Cloud Shell 让您可以直接在浏览器中通过命令行访问云端资源。您可以轻松管理项目和资源,而无需在系统上安装 Google Cloud SDK 或其他工具。Cloud Shell 让您可以根据自己的需要,随时使用最新且经过全面身份验证的 Cloud SDK gcloud 命令行以及其他必要的实用工具。

官方文档: https://cloud.google.com/shell/docs

怎么使用永久免费的VPS服务器 Google Cloud Shell
已登录的用户在网络浏览器中从 GOOGLE CLOUD CONSOLE 启动 CLOUD SHELL 实例,并检查 GOOGLE CLOUD 组件的版本。
怎么使用永久免费的VPS服务器 Google Cloud Shell

安全可靠且默认经过全面身份验证

Cloud Shell 提供内置授权,方便您访问 Google Cloud Platform 上托管的项目和资源。

怎么使用永久免费的VPS服务器 Google Cloud Shell

您喜爱的工具已预先装好,并且是最新版本

Cloud Shell 预装了许多您喜爱的命令行工具,包括 bash 和 sh,以及 emacs 和 vim,并且均为最新版本。MySQL 客户端、Docker 和 Kubernetes 等管理工具已配置完毕并准备就绪,因此您无需费神思考如何安装最新版本工具及其所有依赖项,只要连接到 Cloud Shell 即可使用!

怎么使用永久免费的VPS服务器 Google Cloud Shell

方便开发者使用

开发者可以轻松使用所有自己喜欢的且预先配置好的开发工具,包括 Java、Go、Python、Node.js、PHP 及 Ruby 开发和部署工具。您可以在 Cloud Shell 实例中运行 Web 应用,并通过浏览器进行预览,然后使用预先配置的 Git 和 Mercurial 客户端将其提交回代码库。

怎么使用永久免费的VPS服务器 Google Cloud Shell

5GB 永久性磁盘存储空间

Cloud Shell 提供 5GB 的永久性磁盘存储空间,作为您在 Cloud Shell 实例上的 $HOME 目录。您存储在主目录中的所有文件(包括脚本以及 .bashrc 和 .vimrc 等用户配置文件)在不同会话之间保持不变。

方案

下载安装官方SDK: https://cloud.google.com/sdk/docs/downloads-versioned-archives

地址获取: 点击下载

也可以用 :MobaXterm_Personal_12.3     FinalShell:点击下载

CodeCommand 来干点什么吧

先安装sdk 下载64位版,右键管理员安装

添加系统变量  sdk\bin\  

获取到地址就登入吧 

ssh -p 6000 root@devshell-vm-38591f26-0c1a-4990-8066-eef88a294bd1.cloudshell.dev

在用户\.ssh  文件夹下面  google_compute_engine 是私钥

远程centos密钥ssh登入

ssh-keygen -t rsa 一路回车生成密钥

文件600权限  .ssh700权限

id_rsa       authorized_keys      改成google_compute_engine 里面的私钥

ssh -p 6000 root@devshell-vm-38591f26-0c1a-4990-8066-eef88a294bd1.cloudshell.dev

命令  

初始化: gcloud init

启动:gcloud alpha cloud-shell ssh

选择区域:gcloud config set compute/region us-east1

目前 可用计划任务,防止掉线。配额还在测试!

防掉线

  • 可以用Shell 或 PHP 做个计划任务,30分钟主动连接一下SSH,目前稳定,不重置不关机!

翻墙

目前还没有 好方法,但是可以用ssh隧道代理

怎么使用永久免费的VPS服务器 Google Cloud Shell

注意

Cloud Shell 会话的后端虚拟机实例并非永久分配给该会话,当会话处于非活跃状态一小时后,相关虚拟机即会终止。实例终止后,您在 $HOME 之外对其所做的任何修改都将丢失。

不推荐搭建什么翻墙,做做爬虫、转存等发挥更大价值

 

 

 

 

ssh 登录服务器的两种方式

如果是一个比较喜欢折腾的人,在某个云平台购买了一台云主机,除了通过云平台提供的 web 页面上的命令行工具,其实也可以在本地电脑上面通过 ssh 进行登录。具体地又可以分成两种:

  1. ssh 用户名密码登录
  2. ssh 证书(免密码)登录

需要说明一下,后者的安全性高于前者,因此一般会默认不启用第一种登录方式,只允许第二种登录方式。

SSH 为 Secure Shell 的缩写,是建立在应用层基础上的安全协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。ssh 分成服务端与客户端,其中服务端运行在被登录的机器上面,客户端运行在操作的机器上面。

用户名密码登录

通常 openssh-server 默认允许用户名密码登录,但是不排除为了安全考虑云上的服务器上禁止开启 ssh 的这种登录方式,毕竟用户名加密码的方式很容易被爆力破解。如果大家理解其中的厉害关系,可以检查修改 /etc/ssh/sshd_config(sshd 的配置文件)中 PasswordAuthentication 这一项配置为 yes(一般默认是 yes )。修改完配置重启 sshd 服务就可以使用用户名和密码登录了。

1
2
3
4
# -l 指定用户名为 wangao
# -p 指定端口为 2222,默认为 22
# 输入下面的命令后根据提示输入密码就可以登录到对应的服务器了 
ssh -l wangao -p 2222 192.168.56.101

ssh 免密登录

所谓免密登录,也就是说不需要人工再输入用户名和密码了,但这并不意味着没有了鉴权的动作,服务器毕竟是自己的,不能随便允许别人登录到上面去搞破坏。ssh 免密登录通过证书进行鉴权。

这里的证书分为公钥与私钥,我们可以简单地理解为:公钥 = 锁;私钥 = 钥匙。

流程基本是这样的:如果我们想要从 A 免密登录到 B,就需要把公钥(锁)放到 B 的特定位置,而 A 拥有私钥(钥匙)的完整副本。当 A 拿着私钥去访问 B 的时候,B 发现自己身上有一把锁(B 可能有很多公钥)可以被 A 的私钥打开,于是给 A 放行,A 就成功登录到 B 了。

如何得到证书(公钥与私钥)
上面提到的证书可以通过两种方式获取得到。
第一种是向服务器管理员索取,一般索取得到的是私钥,这样就可以免密登录到任何存放了公钥的服务器了。
第二种是自己生成证书(比如使用 ssh-keygen),然后把公钥放到对应的服务器的特定位置,就可以免密登录到对应的服务器了。

1
2
3
4
5
# 通过 ssh-keygen 可以生成需要的证书 
# 根据提示一路按 RETURN(ENTER) 即可 
# 默认情况下会生成 id_rsa 和 id_rsa.pub 
# id_rsa 为私钥,id_rsa.pub 为公钥 
ssh-keygen

公钥放置位置

linux 系统允许多用户登录同一台服务器,一般情况下 /home 目录会有非常多的用户目录。可以把公钥放置在任何一个用户目录的 $HOME/.ssh/authorized_keys 文件中,比如 cat id_rsa.pub >> /home/wangao/.ssh/authorized_keys ,这样就可以使用私钥以 wangao 的名义登录对应的服务器了。

1
2
3
4
5
6
7
# -i 指定私钥,默认条件下使用 ~/.ssh/id_rsa
# -l 指定用户名 
# -p 指定端口,默认为 22
ssh -i ~/.ssh/id_rsa -p 2222 -l wangao 192.168.56.101

# 上面的命令等同于 
ssh -p 2222 wangao@192.168.56.101

ssh 免密码登录一般流程

生成 PublicKey

建议设置并牢记 passphrase 密码短语,以 Linux 生成为例

Linux:ssh-keygen -t rsa
[私钥 (id_rsa) 与公钥 (id_rsa.pub)]
Windows:SecurCRT/Xshell/PuTTY
[SSH-2 RSA 2048]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 生成 SSH 密钥对 
ssh-keygen -t rsa

Generating public/private rsa key pair.
# 建议直接回车使用默认路径 
Enter file in which to save the key (/root/.ssh/id_rsa): 
# 输入密码短语(留空则直接回车)
Enter passphrase (empty for no passphrase): 
# 重复密码短语 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
aa:8b:61:13:38:ad:b5:49:ca:51:45:b9:77:e1:97:e1 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|    .o.          |
|    ..   . .     |
|   .  . . o o    |
| o.  . . o E     |
|o.=   . S .      |
|.*.+   .         |
|o.*   .          |
| . + .           |
|  . o.           |
+-----------------+

复制密钥对

也可以手动在客户端建立目录和 authorized_keys,注意修改权限

1
2
3
4
# 复制公钥到无密码登录的服务器上, 22 端口改变可以使用下面的命令 
#ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241

修改 SSH 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 编辑 sshd_config 文件 
vi /etc/ssh/sshd_config

# 禁用密码验证 
PasswordAuthentication no
# 启用密钥验证 
RSAAuthentication yes
PubkeyAuthentication yes
# 指定公钥数据库文件 
AuthorsizedKeysFile .ssh/authorized_keys

sed -i "s/^PasswordAuthentication.*/PasswordAuthentication no/g" /etc/ssh/sshd_config
sed -i "s/^#RSAAuthentication.*/RSAAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PubkeyAuthentication.*/PubkeyAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#AuthorizedKeysFile.*/AuthorizedKeysFile .ssh\/authorized_keys/g" /etc/ssh/sshd_config

重启 SSH 服务前建议多保留一个会话以防不测

1
2
3
4
5
6
# RHEL/CentOS 系统 
service sshd restart
# Ubuntu 系统 
service ssh restart
# Debian 系统 
/etc/init.d/ssh restart

手动增加管理用户

可以在 == 后加入用户注释标识方便管理

1
2
3
4
echo 'ssh-rsa XXXX' >>/root/.ssh/authorized_keys

# 复查 
cat /root/.ssh/authorized_keys

使用 Ansible 添加 ssh 信任关系

使用 ansible authorized_key module 即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
---
- hosts: all
  remote_user: root
  gather_facts: false

  tasks:
    - name: authadd root
      authorized_key:
        user: root
        state: present
        key: "{{ lookup('file','/root/.ssh/id_rsa.pub') }}"
        path: /root/.ssh/authorized_keys
        manage_dir: no
      tags:
        - root
正文完
 
周 杰
版权声明:本站原创文章,由 周 杰 2020-02-29发表,共计4934字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)