Linux 服务器操作速查卡
第零部分 SSH 连接
1.1 什么是 SSH
SSH 是一种「隧道」,架在网络上的两台机器之间,隧道中可以传输各种东西,最常见的是终端(命令行、shell)。
发起 SSH 的一方称为「本地」,被连接的一方称为「远端」。
第一部分 SSH 密钥连接
1.1 公钥与私钥概述
在 SSH 连接中,公钥与私钥主要用来供远端(被连接者)检查本地(发起连接者)的身份。(也可以供本地检查远端的身份。)
公钥像一把锁,私钥像这把锁的钥匙。持有公钥的人,可以验证别人是否持有私钥,但是不能反推出私钥。
需要发起连接的一方(本地),准备好自己的公钥和私钥,然后将公钥交给被连接一方(远端)。这样需要连接时,本地就可以用私钥开锁了。
1.2 生成密钥
在本地生成一对公私钥的命令是:
ssh-keygen -t <算法>
其中
<算法>
可以是rsa
(常用)、ed25519
(常用、首选)和其他。上述命令会询问一大堆信息,所有问题直接按回车都可以选择默认值。
默认情况下,生成的一对密钥会放在
~/.ssh
下:公钥是
~/.ssh/id_<算法名>.pub
;私钥是
~/.ssh/id_<算法名>
。
在任何情况下,都不会需要我们打开私钥文件并复制其中的内容。需要你复制内容的只有可能是公钥!
1.3 将公钥登记到远端
我们需要将自己的公钥登记到远端,这样,远端才可以用它来验证我们的身份。
将自己的公钥内容复制,然后追加到远端的
~/.ssh/authorized_keys
文件末尾即可。注意:复制的是公钥文件,扩展名是
.pub
,内容格式为:ssh-<算法名> <叽哩呱啦一大堆> <用户名>@<机器名>
整个文件只有一行。
1.3+ 将公钥登记到远端(懒人版)
上面的公钥登记过程,可以用
ssh-copy-id
命令一键完成:ssh-copy-id <用户名>@<主机名或者 IP>
1.4 GitHub 或 Gitee 等平台的 SSH 连接
git 使用的 SSH 连接,和我们连接自己的服务器,本质上是一样的:利用 SSH 在我们本地和远端(GitHub 或 Gitee 等的服务器)之间建立隧道。只不过,这次不是用来传输终端,而是传输文件信息。
所以,我们只需要将自己的公钥登记到这些网站的系统里就可以了。
第二部分 Unix 的文件世界
2.1 一切皆文件
Unix 是一个古老的操作系统,后来成为了一种标准,符合这个标准的系统都叫 Unix;此外,不符合这个标准,但是和 Unix 有着一致的结构的系统,也可以被称为 Unix。
所以,macOS 和 Linux 都可以视作 Unix,但是 Windows 不是 Unix。
在 Unix 的世界里,「一切皆文件」,