SSH远程连接管理
ssh是Linux自带的,默认端口号为22,主要有两个功能:远程登录和远程复制
在命令远程连接:ssh -P 10086 root@192.168.188.11
- ssh:建立远程连接的固定开头
- root:表示用root账户登录,所以需要输入目标主机root账户的密码
- 192.....11:目标主机的IP地址
- -P 10086 指定端口号为10086,不加-p 10086就默认使用22端口
服务端和客户端
- 服务端:ssh服务器,默认提供22端口监听(listen,等待连接)
- 主要由OPENSSH提供远程连接
- 系统中的应用名称:sshd
- 配置文件在/etc/ssh/目录下
- ssh_config:客户端配置文件,当本机作为客户端时需要配置这个文件
- sshd_config:服务端配置文件
- 客户端:默认访问22端口,和服务端建立连接
- 主要的工具有:putty,Moba,XShell,CRT
- 服务端与客户端之间的数据传输是加密的,防止信息泄露
- 数据传输也是压缩的,提高传输速度
远程复制(⭐):scp,把远程主机上的文件复制到本机,这是B经过A的允许后从A那直接拿的,而不是A主动给B的
- scp -P10086 root@192.168.188.11:/opt/ky01.txt /opt/
- -P是指定端口,可以不写-P,不加默认22
- 以root用户登录192.....11,并将它的/opt/ky01.txt文件复制到我的/opt/目录下
- scp -r 可以复制目录
SFTP:加密的FTP
因为加密,所以传输速率比普通ftp要慢,但是安全性更高。语法上没有区别
sftp -P 10022 root@192.168.188.11:/opt/
ssh服务验证的方式
- 密码验证:上面列出的几种都是密码验证,用john类似的工具可以破解弱口令,导致不安全
- 密钥对验证:双方提供相匹配的密钥信息才能通过验证
- 先在客户端中创建一对密钥文件,然后把密钥文件发送到服务器的指定位置
ssh-keygen -t ecdsa
-
ssh-keygen 创建密钥对的命令
-
-t 指定加密的算法
-
加密算法的类型:rsa、ecdsa、dsa
-
-
-
选择密钥的保存位置,默认保存在/root/.ssh/id_ecdsa
-
选择需要加密的密码
-
最后生成两个文件:id_ecdsa(私钥),id_ecdsa.pub(公钥)
-
ssh-copy-id -i id_ecdsa.pub root@192.168.188.11
-
将公钥传给服务器
-
这一步需要输入服务器的root密码
-
-
ssh-agent bash(刷新环境)
-
ssh-add(把免密登录的验证密码加入到用户环境中去)
-
密码是刚刚新输入的密码
-
-
此后ssh时不再需要输密码
- 先在客户端中创建一对密钥文件,然后把密钥文件发送到服务器的指定位置
-
下面进行具体演示
实验一:发送公钥实现登录
- 现在客户端生成密钥对
- 将公钥发给服务端
- 刷新并把免密登录的验证密码加入到用户环境中去
- 测试,ssh不需要密码,完成
dns:地址解析服务
网络中的通信实际上都是IP地址之间的通信,dns的作用就是把域名解析成对应的IP地址
一个完整的域名地址:www.baidu.com.cn. 要从右往左看
- 右边第一个" . ",根域,全球只有13台,10台在美国,剩下三台在英国,瑞典,日本
- .cn,顶级域,一般表示的是组织机构或者国家地区
- .com,二级域
- .com:商业机构
- .edu.cn:教育机构
- .org:非盈利组织
- .net.cn:运营商
- .baidu,三级域(子域),可以自定义,需要花钱买
- www,主机名,表示一台具体的计算机
dns查询域名,解析的过程
- 先到本地 hosts 文件查找
- 再到运行商提供的DNS域名服务器查找
- 最后到根域服务器(.)查找
- 根域服务器能够找到目标,但是它会让你去对应的顶级域接着找
- 顶级域也能找到目标,但是它会提示你去对应的二级域接着找
- 二级域会将最终的结果(IP地址)返回给用户:返回时,当数据到达运营商时,运营商会有记录,进行缓存,到本机时也会自动保存
- 整个过程有两个重要概念:
- 迭代:根域→顶级域→二级域 的查询过程,每次都会获得更多一点的信息,也就是说A向B查询信息时,B不会直接告诉A答案,而是让A自己去指定的地方继续查询。
- 递归:运营商→用户,A向B查询信息时,不管B是怎么获得的这个信息,他都会直接将A需要的内容发给A
实验二:DNS正向解析(从域名到IP地址)
- 先检查有没有安装 bind
有三个相关文件:
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件,用于做映射
/var/named/named.localhost 区域数据配置文件,用于做解析 - 先对 /etc/named.conf 进行修改
- 修改 /etc/named.rfc1912.zones
- 进入/var/named,将named.localhost文件复制为 ky01.com.zone,这个名字是上一步文件中file "ky01.com.zone"的名字
先看下上半部分的解释,看完记得把 @ 改成域名
下半部分解释顺便整体看一下,后两条类似于自定义,你可以自己加比如 ftp 等各种服务 - 网络配置一下,这里需要说明的是,如果在ens33的配置中修改,修改完毕后需要重启一下网络,而如果在/etc/resolv.conf中修改是不需要重启的。
- 启动一下,顺便关一下防火墙
- 测试一下,客户端网络配置一下
nslookup 得到的都是正确的IP
实验三:DNS反向解析
- /ec/named.conf配置不变
- 和正向差不多,file名只要不重复就行
- 复制数据配置文件
- 编辑反向解析
- 网络的配置跟之前一样,重启服务,关防火墙
- 最后测试一下
实验四:DNS主从服务器
- 假设loz是主服务器,先检查bind是否安装
/etc/named.conf配置与之前一样 - 对/etc/named.rfc1912.zones文件内正反解析的配置
正反解析的区域数据配置文件与之前一样,不需要改变 - 添加一下DNS备服务器的地址,可以在网络配置中添加,也可以直接在resolv.conf中添加,如果ens33中配置的DNS地址与resolv.conf中配置的不一样,重启网络后resolv.conf中的dns会被ens33中的dns地址覆盖。所以这里最好不要重启网络。
重启服务,关闭防火墙 - 现在对备服务器配置,假设sp是备服务器,先检查是否安装了bind
主配置文件可以和主服务器的主配置文件一样,如果想要指定监听地址,就要写本机地址 - 对正反解析文件的配置如下
区域数据文件不需要创建,备服务器会直接接收主服务器传送的区域数据,同样添加一下DNS服务器的地址
重启服务,关闭防火墙 - 检查一下/var/named/目录下是否有slaves目录
再检查一下slaves目录下有没有两个区域数据文件 - 最后进行测试:我新建了一个客户机,先配置DNS服务器地址
先测试一下正常情况下能否使用,测试结果正常
此时我们关掉主服务器的bind服务
再进行查询时,依然可以查到正确的内容,但是服务地址变成了备服务器的地址,说明主从服务器切换成功