命令行三部曲(二)登入远程 Linux

15 March, 2020

本教程的目的是让非技术人员会在本地登入远程机器的命令行界面. 更新于 15 March 2020

cloud@txthinking.com
https://github.com/txthinking
https://www.txthinking.com

阅读本教程之前

请务必先阅读以下教程(很重要):

请务必按照上述链接内介绍的软件进入命令行界面

准备工作

  • 你有一个远程 Linux 系统(比如一个云服务器), 如果有防火墙, 需要开放 22 端口
  • 你已经在本地进入了命令行界面

不同云服务商下购买服务器的页面操作不同,这里暂不介绍如何购买

登入远程 Linux 系统的命令行界面的 2 种方式

  • 第一种是通过[用户名]和[密码]登入
  • 第二种是通过[用户名]和[私钥]文件登入

当你购买云服务器时

  • 要求你设定服务器的[密码], 后续便可用[第一种方式]登录
  • 要求你上传或填写一个[公钥], 或云端为你生成一个[公钥]后让你下载[私钥], 后续便可用第二种方式登录

第一种方式: 通过[用户名]和[密码]登入远程 Linux

这里我们会用到内置命令 ssh

假设你的远程 Linux 系统的 IP 是: 1.2.3.4, 用户名是: root

ssh root@1.2.3.4
[这一条命令回车后会提示你输入密码, 并回车. 注: 输入密码时是不可见的, 无任何提示, 不要奇怪]

第二种方式: 通过[用户名]和[私钥]文件登入远程 Linux

这里我们会用到内置命令 chmod 和 ssh

假设你的远程 Linux 系统的 IP 是: 1.2.3.4, 用户名是: root, 私钥文件在当前目录下: a

  1. 用 chmod 修改私钥权限

    chmod 600 ./a
    
  2. 用 ssh 登入远程 Linux

    ssh -i ./a root@1.2.3.4
    
  • 私钥文件可能是创建云服务器时, 云服务商生成后, 让你下载的
  • 也可能是自己生成的, 我们稍后介绍如何自己生成公钥和私钥文件

如何自己生成公钥和私钥文件

这里我们会用到内置命令 ssh-keygen

比如在当前目录下生成私钥文件 a, (同时会自动生成公钥文件 a.pub):

    ssh-keygen -q -t rsa -N '' -C ubuntu -f ./a

注意:

  • a 文件是私钥文件, a.pub 是公钥文件
  • 如果云服务器要求你上传公钥, 是需要上传 a.pub 文件
  • 私钥文件不要对外公开, 公钥文件可以对外公开(比如上传给云服务商)
  • 私钥和公钥文件都可以用文本编辑器打开

切换到 root 用户

  • root 用户拥有最高权限

  • 如果你远程 Linux 登入时使用的用户名不是 root, 建议在登入后执行其他命令前, 用以下命令切换到 root:

      sudo su
      [可能会让你输入当前用户的密码]
    

总结

  1. 你得先有一个远程 Linux, 比如云服务器
  2. 登入远程 Linux 系统有两种方式
  3. 使用 ssh 通过用户名和密码登入远程 Linux
  4. 使用 ssh 通过用户名和私钥文件登入远程 Linux
  5. 使用 ssh-keygen 生成公钥文件和私钥文件
  6. 切换到 root 用户

(提示: Youtube 频道有此幻灯片更详细的视频介绍, 视频末尾还有实际命令行演示)

相关资源