Linux

1、登录服务器:ssh

ssh,secure shell protocol,以更加安全的方式连接远程服务器。
把以下 IP 地址替换为云服务器的公网地址,并提供密码即可登录。
但记住一个 IP 地址,这是一个反人性的操作,如果有多个服务器需要管理呢?

  1. # root: 用户名
  2. # 172.16.3.2: 云服务器 IP 地址,需要把 IP 地址换成个人 IP 地址
  3. $ ssh root@172.16.3.2

2、配置别名快速登录:ssh-config

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

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

以下是快速登录的两个服务器 fcanttraining 的配置

  1. # 修改 ssh 配置文件 ~/.ssh/config
  2. Host fcant
  3. HostName 172.16.3.2
  4. User root
  5. Host training
  6. HostName <PUBLIC_IP>
  7. User root

配置成功之后直接 ssh 就可以直接登录,是不很方便?

  1. $ ssh fcant
  2. Last login: Wed Jun 15 20:09:14 2022 from 172.16.3.4
  3. Welcome to Alibaba Cloud Elastic Compute Service !
  4. [root@fcant ~]#

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

如何实现远程服务器的免密登录需要两个条件:

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

「总结成一句话,把自己的公钥放在远程服务器的 authorized_keys 中」
简单来说,就是 Ctrl-CCtrl-V 操作,不过还有一个更加有效率的工具:ssh-copy-id
此时一个解决生产力的命令行工具应运而生:ssh-copy-id

  1. # 在本地环境进行操作
  2. # 提示输入密码,成功之后可以直接 ssh 登录,无需密码
  3. $ ssh-copy-id fcant
  4. # 登陆成功,无需密码
  5. $ ssh fcant

4、安全性:禁用密码登录

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

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

5、保持连接,防止断掉

除此之外,还可以通过一些配置来更好地优化连接服务器时的体验。
可以通过**man ssh-config**,找到每一项的详细释义。

  1. # 编辑 ~/.ssh/config
  2. Host *
  3. ServerAliveInterval 30
  4. TCPKeepAlive yes
  5. ServerAliveCountMax 6
  6. Compression yes