远程管理与 SSH
远程管理与 SSH
这一篇学习远程管理相关的命令。服务器通常不在你身边,学会远程管理是每个 Linux 使用者的必备技能。
关机与重启
| 命令 | 对应英文 | 作用 |
|---|---|---|
shutdown 选项 时间 |
shutdown | 关机或重新启动 |
shutdown 命令可以安全地关闭或重新启动系统。
| 选项 | 含义 |
|---|---|
-r |
重新启动 |
提示
- 不指定选项和参数,默认表示 1 分钟之后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
常用命令示例:
1 | # 重新启动操作系统,now 表示现在 |
另外还有两个更直接的命令:poweroff 立即关机,reboot 立即重启。
查看网络信息
网卡和 IP 地址
- 网卡:专门负责网络通讯的硬件设备
- IP 地址:设置在网卡上的地址信息
可以把电脑比作电话,网卡相当于 SIM 卡,IP 地址相当于电话号码。每台电脑的 IP 地址不能相同,否则会出现 IP 冲突,无法正常通讯。
ifconfig 查看网卡
1 | # 查看网卡配置信息 |
一台计算机可能有物理网卡和多个虚拟网卡,Linux 中物理网卡的名字通常以
ensXX表示。127.0.0.1被称为本地回环地址,一般用来测试本机网卡是否正常。
ping 检测网络
1 | # 检测到目标主机是否连接正常 |
ping 用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大速度越慢。它的原理和潜水艇的声纳相似:给目标 IP 发送一个数据包,对方返回一个数据包,根据返回的数据包和时间确定目标主机的存在。
在 Linux 中,想要终止一个终端程序的执行,绝大多数都可以使用
Ctrl + C。
SSH 远程登录
什么是 SSH
SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性。它常用于远程登录和用户之间的资料拷贝。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露,对所有传输的数据进行加密,还能防止 DNS 欺骗和 IP 欺骗。SSH 的另一优点是传输的数据可以压缩,加快传输速度。
客户端和服务器的关系
如果 A 机器想被 B 机器远程控制,那么 A 机器需要安装 SSH 服务器,B 机器需要安装 SSH 客户端。
域名和端口号
- 域名:由一串用点分隔的名字组成(如
www.google.com),是 IP 地址的别名,方便记忆 - 端口号:通过 IP 地址找到计算机,通过端口号找到计算机上运行的应用程序
常见服务端口号:
| 服务 | 端口号 |
|---|---|
| SSH 服务器 | 22 |
| Web 服务器 | 80 |
| HTTPS | 443 |
| FTP 服务器 | 21 |
SSH 客户端的使用
1 | ssh [-p port] user@remote |
user:远程机器上的用户名,不指定则默认为当前用户remote:远程机器的地址,可以是 IP、域名或别名port:SSH 服务器监听的端口,不指定则为默认值 22
提示
- 使用
exit退出当前用户的登录ssh命令只能在 Linux 或 UNIX 系统下使用- 在 Windows 系统中,可以安装 PuTTY 或 XShell 客户端软件
- 工作中 SSH 服务器的端口很可能不是 22,需要用
-p选项指定正确端口
安装 SSH 服务器
Ubuntu 默认没有安装 SSH 服务器,需要手动安装:
1 | $ sudo apt install openssh-server |
安装之后,其他系统才能通过 SSH 工具远程登录你的机器。
scp 远程复制文件
scp 是 secure copy,用于远程拷贝文件。它的地址格式与 ssh 基本相同,但指定端口时用大写的 -P。
1 | # 把本地当前目录下的 01.py 复制到远程家目录下的 Desktop/01.py |
| 选项 | 含义 |
|---|---|
-r |
递归复制目录下的所有子目录和文件 |
-P |
指定端口(大写) |
在 Windows 系统中,可以安装 PuTTY 使用
pscp命令行工具,或安装 FileZilla 使用 FTP 进行文件传输。
SSH 高级:免密码登录
每次登录都要输密码很麻烦,SSH 支持免密码登录。
配置公钥
1 | # 生成 SSH 钥匙,一路回车即可 |
上传公钥到服务器
1 | $ ssh-copy-id -p port user@remote |
这样远程服务器就记住了我们的公钥,下次登录就不需要密码了。
非对称加密算法
使用公钥加密的数据,需要用私钥解密;使用私钥加密的数据,需要用公钥解密。公钥可以公开,私钥必须保密。
配置别名
每次都输入 ssh -p port user@remote 很麻烦,可以配置别名。在 ~/.ssh/config 里追加:
1 | Host mac |
保存之后,就可以用 ssh mac 实现远程登录了,scp 同样可以使用。
小结
这一篇我们学习了关机重启、网络配置和 SSH 远程管理。下一篇学习用户和权限管理。
上一篇:文件和目录操作
下一篇:用户与权限管理