Linux教程(四)远程管理
在 Linux 中 ssh 是非常常用的工具,通过 SSH 客户端可以连接到运行了 SSH 服务器的远程机器上。ssh 是目前较为可靠的、专为远程登录会话和其他网络服务提供安全性的协议。
优点:
-
利用 ssh 协议可以有效防止远程管理过程中的信息泄露
-
通过 ssh 协议可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗
-
SSH 的另一个优点是传输的数据可以进行枷锁,所以加快了传输的速度
5.1 域名和端口号
5.1.1 域名
有一串用 . 分隔的名字组成,如:www.baidu.com,是 ip 地址的别名,方便用户记忆
5.1.2 端口号
ip地址:通过 ip 地址找到网络上的计算机
端口号:通过端口号可以找到计算机上运行的应用程序
SSH 服务器的额默认端口号是 22,如果是默认端口号,在连接的时候可以省略
常见服务端口号列表:
服务 | 端口号 |
---|---|
SSH 服务器 | 22 |
Web 服务器 | 80 |
HTTPS | 443 |
FTP 服务器 | 21 |
5.2 SSH 客户端简单使用
5.2.1 远程登录
格式:ssh [-p port] user@remote
-
user:远程机器上的用户名,不指定的话默认为当前用户
-
remtoe:远程机器的地址,可以是 ip 、域名或者别名
-
port:ssh server 监听的端口,不指定默认为 22
使用 exit 可推出当前用户的登录状态
ssh 终端命令只能在 linux 或 unix 系统下使用,windows 中可以安装 PuTTY 或者 XShell 客户端软件
5.2.2 关机重启 shutdown
格式:shutdown 选项 时间
选项:
- -r:重新启动
不指定选项和参数,默认1分钟之后关闭电脑
远程维护服务器时,最好不要关闭系统,而应该重启系统
# 重新启动系统,now 表示现在
shutdown -r now
# 立即关机
shutdown now
# 在指定时间关机
shutdown 20:30
# 过十分钟自动关机
shutdown +10
# 取消之前的关机计划
shutdown -c
5.2.3 查看或配置网卡信息
1.ifconfig
作用:查看/配置计算机当前的网卡配置信息
格式:ifconfig
# 查看网卡配置信息
ifconfig
# 查看网卡对应的 IP 地址
ifconfig | grep inet
一台计算器中可能有一个物理网卡和多个虚拟网络,在 Linux 中物理网卡的名字通常以 ensXX 表示
127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常
2.ping
作用:ping 一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢
格式:ping IP地址/域名
#检测目标主机是否连接正常
ping IP地址
# 检测本地网卡是否正常工作
ping 127.0.0.1
5.3 复制文件 scp
作用:scp 是一个在 linux 下用来进行远程拷贝文件的命令,格式与 ssh 基本相同
格式:scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径
选项:
-
-r:若源文件是目录文件,则递归复制该目录下所有的子目录和文件,且目标文件必须为一个目录名
-
-P:若远程 SSH 服务器的端口不是 22,则需要使用大写字母 -P 选项指定端口
# 把本地当前目录下的01.py 文件复制到远程家目录下的 Desktop/01.py
# 注意:“:”后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程家目录下的 Desktop/01.py 文件复制到本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹复制到远程家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程家目录下的 Desktop 复制到当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
注:scp 在指定端口时要使用大写 -P
5.4 SSH 高级
ssh 的配置信息都保存在用户家目录的 .ssh 目录下
4.4.1 免密码登录
1.配置公钥:执行 ssh-keygen 生成 SSH 秘钥对
2.执行 ssh-copy-id -p port user@remote:让远程服务器记住公钥
5.4.2 配置别名
远程连接 SSH 时每次都需要输入 ssh -p port user@remote 非常麻烦,设置时别名可以更方便的输入命令
别名在 ~/.ssh/config 中进行配置
Host mac
HostName remote
User user
Port port
# 设置别名为 mac,上面这一段即可使用 mac 来代替 -p port user@remote,保存后就可以使用 ssh mac 来实现远程登录了,scp 也可以使用别名