极客时间对于推广渠道会有返利优惠,比如山月在极客时间买了一门课,再把课程分享给好友购买,这时极客时间会向山月返利20元左右。
而我现在做了一个返利平台,你可以在上边通过山月的链接购买课程,此时极客时间会向我返利。为了共同学习,而你可以添加我的微信 (shanyue94),我将把极客时间给我的返利发一个红包全部返给你

# 高效简单的服务器登录配置

当你拥有了属于自己的一台云服务器后,首先需要做的事情就是登录服务器。

而登录服务器,作为新手可以通过云厂商提供的 dashboard 进行登录操作。但是,最简单及最方便的方式还是通过终端,使用 ssh 命令快速登录

本节主要涉及以下四个实践操作,这也是山月关于个人服务器管理的第一篇文章,欢迎持续关注

  1. 快速登录: 配置客户端 ssh-config
  2. 免密登录: 配置 public key
  3. 禁用密码:配置服务器 ssh-config
  4. 保持连接:控制ssh不被断开

你对流程熟悉后,只需要一分钟便可以操作完成

# 登录服务器: ssh

把以下 IP 地址替换为你云服务器的公网地址,并提供密码即可登录。但记住一个 IP 地址,这是一个反人性的操作,如果你有多个服务器呢?此时 ssh-config 就派上了用场

$ ssh root@172.16.3.2

# 快速登录:ssh-config

在本地客户端环境 (个人电脑) 上配置 ssh-config,对个人服务器起别名,可以更方便地登录云服务器,以下是关于 ssh-config 的配置文件

  • /etc/ssh/ssh_config
  • ~/.ssh/config

以下是快速登录山月两个服务器 shanyueshuifeng 的配置

# 修改 ssh 配置文件 ~/.ssh/config

Host shanyue
    HostName 59.110.216.155
    User root
Host shuifeng
    HostName <PUBLIC_IP>
    User root

配置成功之后直接 ssh host 名称就可以,是不是很方便呢?

$ ssh shanyue
The authenticity of host '59.110.216.155 (59.110.216.155)' can't be established.
ECDSA key fingerprint is SHA256:WXULVpZcrX6kENrR5GH0mqRi49Djj22UXba0dRXCVKo.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '59.110.216.155' (ECDSA) to the list of known hosts.

Welcome to Alibaba Cloud Elastic Compute Service !

[root@shanyue ~]#
[root@shanyue ~]#
[root@shanyue ~]#

# 免密登录:public-key 与 ssh-copy-id

不过仅仅有了别名,每次输入密码也是足够麻烦的。那如何实现远程服务器的免密登录?

  1. 两个文件: 本地环境的 ~/.ssh/id_rsa.pub 与 远程服务器的 ~/.ssh/authorized_keys
  2. 一个动作:把本地文件中的内容复制粘贴到远程服务器中

如果本地环境中 ~/.ssh/id_rsa.pub 文件不存在,请参考下一章节使用 ssh-keygen 生成 ssh keys: ssh key 及 git 配置 (opens new window)

总结成一句话,即把自己的公钥放在远程服务器。

简单来说,就是 Ctrl-CCtrl-V 操作,不过具体实施起来较为琐碎。 更为重要的是对于新人还有一个门槛:vim 的使用

关于 vim,可以参考后续文章 vim 基本操作及其配置 (opens new window)

此时一个解决生产力的命令行工具应运而生: ssh-copy-id

# 在本地环境进行操作

# 提示你输入密码,成功之后可以直接 ssh 登录,无需密码
$ ssh-copy-id shanyue

# 登陆成功,无需密码
$ ssh shanyue

# 禁用密码登录

为了更大保障服务器的安全性,这里禁止密码登录。修改云服务器的 sshd 配置文件:/etc/ssh/sshd_config。其中 PasswordAuthentication 设置为 no,以此来禁用密码登录。

# 编辑服务器端的 /etc/ssh/sshd_config
# 禁用密码登录
Host *
  PasswordAuthentication no

# 保持连接

此时仿佛一切都顺心遂意,心满意足,于是,山月趁空接了杯水喝。然而回来发现,ssh 超时断开连接,并因此 hang 住了,这怎么能忍?

在客户端的 ssh-config 配置文件中,加两行配置搞定。

Host *
  ServerAliveInterval 60

关于山月

我的项目:
我的微信:shanyue94,欢迎交流
Last Updated: 7/21/2019, 11:25:08 AM