计算机技术学习札记

Linux 服务器操作速查卡

第零部分 SSH 连接

1.1 什么是 SSH

  1. SSH 是一种「隧道」,架在网络上的两台机器之间,隧道中可以传输各种东西,最常见的是终端(命令行、shell)。

  2. 发起 SSH 的一方称为「本地」,被连接的一方称为「远端」。

第一部分 SSH 密钥连接

1.1 公钥与私钥概述

  1. 在 SSH 连接中,公钥与私钥主要用来供远端(被连接者)检查本地(发起连接者)的身份。(也可以供本地检查远端的身份。)

  2. 公钥像一把锁,私钥像这把锁的钥匙。持有公钥的人,可以验证别人是否持有私钥,但是不能反推出私钥。

  3. 需要发起连接的一方(本地),准备好自己的公钥和私钥,然后将公钥交给被连接一方(远端)。这样需要连接时,本地就可以用私钥开锁了。

1.2 生成密钥

  1. 在本地生成一对公私钥的命令是:

    ssh-keygen -t <算法>
    

    其中 <算法> 可以是 rsa(常用)、ed25519(常用、首选)和其他。

  2. 上述命令会询问一大堆信息,所有问题直接按回车都可以选择默认值。

  3. 默认情况下,生成的一对密钥会放在 ~/.ssh 下:

    1. 公钥是 ~/.ssh/id_<算法名>.pub

    2. 私钥是 ~/.ssh/id_<算法名>

  4. 在任何情况下,都不会需要我们打开私钥文件并复制其中的内容。需要你复制内容的只有可能是公钥!

1.3 将公钥登记到远端

  1. 我们需要将自己的公钥登记到远端,这样,远端才可以用它来验证我们的身份。

  2. 将自己的公钥内容复制,然后追加到远端的 ~/.ssh/authorized_keys 文件末尾即可。

  3. 注意:复制的是公钥文件,扩展名是 .pub,内容格式为:

    ssh-<算法名> <叽哩呱啦一大堆> <用户名>@<机器名>
    

    整个文件只有一行。

1.3+ 将公钥登记到远端(懒人版)

  1. 上面的公钥登记过程,可以用 ssh-copy-id 命令一键完成:

    ssh-copy-id <用户名>@<主机名或者 IP>
    

1.4 GitHub 或 Gitee 等平台的 SSH 连接

  1. git 使用的 SSH 连接,和我们连接自己的服务器,本质上是一样的:利用 SSH 在我们本地和远端(GitHub 或 Gitee 等的服务器)之间建立隧道。只不过,这次不是用来传输终端,而是传输文件信息。

  2. 所以,我们只需要将自己的公钥登记到这些网站的系统里就可以了。

第二部分 Unix 的文件世界

2.1 一切皆文件

  1. Unix 是一个古老的操作系统,后来成为了一种标准,符合这个标准的系统都叫 Unix;此外,不符合这个标准,但是和 Unix 有着一致的结构的系统,也可以被称为 Unix。

  2. 所以,macOS 和 Linux 都可以视作 Unix,但是 Windows 不是 Unix。

  3. 在 Unix 的世界里,「一切皆文件」,