目录
文章目录
前言
一.安装时间服务器软件
初始化系统
二.配置时间服务器的服务端
三.配置时间服务器的客户端
四.远程连接服务器
Linux中的时间服务器是指NTP服务器,NTP是Network Time Protocol的缩写,即网络时间协议。NTP服务器可以提供精确的时间信息,从而使得网络上的所有设备都能够同步时间,确保整个网络的时间一致性。
#在文件/etc/yum.repos.d/中新建一个以.repos 结尾的文件
[root@timeserver ~]# cd /etc/yum.repos.d/
[root@timeserver yum.repos.d]# vim /etc/yum.repos.d/wangluo.repo
#写入如下内容
[wangluo-app]
name=wanluo-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0
[wangluo-base]
name=wangluo-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0
#安装软件包
[root@timeserver yum.repos.d]# yum install vim bash-completion -y
出现完毕字样代表成功安装
#将服务设置为开机自启
[root@localhost ~]# systemctl enable --now firewalld
#编辑/etc/chrony.conf文件
[root@timeserver yum.repos.d]# vim /etc/chrony.conf
#配置完成后重启生效
[root@localhost ~]# systemctl restart chronyd
#将当前时间改为18:00
[root@timeserver yum.repos.d]# date -s '18:00'
2023年 09月 21日 星期四 18:00:00 CST
#启动时间服务器校验正确时间
[root@timeserver yum.repos.d]# chronyc sources
等待后时间同步,由上图可知:
时间服务器 IP地址:203.107.6.88
?代表时间服务器无法访问 * 代表可正常访问
#将chronyc sources 指令的输出重定向 到黑洞文件 删除该命令的输出
[root@timeserver yum.repos.d] chronyc sources > /etc/null
#修改主机名
[root@timeserver yum.repos.d]# hostnamectl hostname timeserver(修改的名字)
[root@timeserver ~]# vim /etc/chrony.conf
#编辑/etc/chrony.conf文件
[root@timeserver yum.repos.d]# vim /etc/chrony.conf
[root@timeserver ~]# systemctl disable --now firewalld
远程连接服务器是一种通过互联网或局域网连接到远程计算机的技术,使用户能够使用远程计算机上的资源和应用程序。通过远程连接,用户可以在任何地点远程访问服务器上的数据、文件和应用程序,就好像他们坐在服务器旁边一样。远程连接服务器可以提高工作效率和灵活性,也可以帮助用户更好地管理远程设备。常用的远程连接方式包括远程桌面连接、SSH、Telnet等。
主机作为被连接方 | 可以更改 sshd_config 文件 |
主机作为连接方 | 可以更改 ssh_config |
#Port 22 代表服务器监听的端口为 22号
按注释行的格式将端口号改为 2222 号
端口号设置完毕之后,重新系统后,为什么会报错 ?
Linux 系统的存在强制访问控制机制SELinux ,它可以实现对操作系统的安全控制。但是在某些情况下,可能会出现一些问题,例如某些应用程序无法运行或者权限不足等。在这种情况下,可以使用 setenforce 0 命令关闭 SELinux,以解决这些问题。关闭 SELinux 可能会降低系统的安全性,因此应该谨慎使用。
setenforce 0 每次开机都需要配置,如需永久生效 则需要更改配置文件/etc/selinux/config
将SELINUX==enforcing 改为 ==permissive
[root@timeserver ~]# getenforce
[root@timeserver ~]vim /etc/selinux/config
将SELINUX==enforcing 改为 ==permissive
[root@timeserver ~]systemctl disable --now firewalled
#查看防火墙状态
[root@timeserver ~]# systemctl status firewalld
[root@timeserver ~]ssh root@+(客户端IP地址) -p(指定端口号) 2222
#拒绝root用户登录
[root@timeserver yum.repos.d]# vim /etc/ssh/sshd_config.d/01-permitrootlogin.conf
#将PermitRootLogin yes 改为 PermitRootLogin no
#允许特定用户ssh等罗,其它都无法登录
[root@timeserver yum.repos.d]vim /etc/ssh/sshd_config
#在末尾添加一条指令:allow users+(指定用用户名)
对称密钥:
对称密钥也称为共享密钥,是一种加密方式,简单的说就是加密密钥和解密密钥相同。
非对称密钥:
非对称密钥也叫公私钥加密,它是一种在信息传输过程中对传输内容进行加密和解密的方法。非对称密钥有两个密钥,一个是公钥,一个是私钥。公钥是公开给所有人的,任何人都可以使用公钥对信息进行加密,但只有拥有私钥的人才能解密。简单的说就是加密密钥和解密密钥不同。
SSH工作过程:
在整个通讯过程中,为实现SSH的安全连接,服务端与客户端要经历如下五个阶段:
(1)版本协商阶段
(2)密钥和算法协商阶段
会话密钥的生成:
客户端需要使用适当的客户端程序来请求连接服务器,服务器将服务器的公钥发送给客户端。(服务器的公钥产生过程:服务器每次启动sshd服务时,该服务会主动找/etc/ssh/ssh_host*文件, 若系统刚装完,由于没有这些公钥文件,因此sshd会主动去计算出这些需要的公钥文件,同时也会计算出服务器自己所需要的私钥文件。)
删除 host 文件之后,客户端和服务端建立连接是确认机制否是会生成这个文件,将公钥记录进去?
服务器生成会话ID,并将会话ID发给客户端。
若客户端第一次连接到此服务器,则会将服务器的公钥数据记录到客户端的用户主目录内的~/.ssh/known_hosts。若是已经记录过该服务器的公钥数据,则客户端会去比对此次接收到的与之前的记录是否有差异。客户端生成会话密钥,并用服务器的公钥加密后,发送给服务器。
服务器用自己的私钥将收到的数据解密,获得会话密钥。
服务器和客户端都知道了会话密钥,以后的传输都将被会话密钥加密
(3)认证阶段
SSH提供两种认证方法:
实验:linux客户端通过秘钥登录linux服务端root用户
[root@timeserver ~]ssh-keygen
#不进行任何操作,直接回车
#查看公钥文件
[root@timeserver ~]ll /root/.ssh/
#将公钥发送给服务端
[root@timeserver ~]ssh-copy-id [email protected](服务端 IP)