您现在的位置是:首页 >学无止境 >第七章 使用ssh服务管理远程主机网站首页学无止境
第七章 使用ssh服务管理远程主机
简介第七章 使用ssh服务管理远程主机
第七章 使用ssh服务管理远程主机
一、配置网卡服务
1、配置网卡参数
(1)、执行nmtui命令运行网络配置工具
[root@centos ~]# nmtui
(2)、选择编辑连接并按回车
(3)、选择以太网中网卡名称并编辑
(4)、将IPv4的配置方式改成手动模式
(5)、按下显示按钮显示详细信息
(6)、填写IP地址、子网掩码和网关并按下确定
(7)、点击返回按钮
(8)、点击退出按钮
(9)、重启网卡
[root@centos ~]# nmcli connection reload ens160
[root@centos ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
2、创建网络会话
(1)、创建指定公司使用的网络会话
[root@centos ~]# nmcli connection add con-name company ifname ens160 autoconnect no type ethernet ip4 192.168.2.20/24 gw4 192.168.2.1
连接 "company" (e8d5aa3a-6b79-431e-b6de-129901166e9d) 已成功添加。
(2)、创建指定家庭使用的网络会话
[root@centos ~]# nmcli connection add con-name house type ethernet ifname ens160
连接 "house" (a6271d4d-4cc4-4cb4-8bc4-eea6a918ca42) 已成功添加。
(3)、查看网络会话
[root@centos ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 3d3dbf95-38c6-4045-92cb-0e2c12c52346 ethernet ens160
virbr0 e56d42a5-ca28-48ed-b5a5-9fa225e4fb3c bridge virbr0
company e8d5aa3a-6b79-431e-b6de-129901166e9d ethernet --
house a6271d4d-4cc4-4cb4-8bc4-eea6a918ca42 ethernet --
(4)、激活company网络会话
[root@centos ~]# nmcli connection up company
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
(5)、激活house网络会话
[root@centos ~]# nmcli connection up house
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
(6)、删除网络会话
//删除company网络会话
[root@centos ~]# nmcli connection delete company
成功删除连接 "company" (e8d5aa3a-6b79-431e-b6de-129901166e9d)。
//删除house网络会话
[root@centos ~]# nmcli connection delete house
成功删除连接 "house" (a6271d4d-4cc4-4cb4-8bc4-eea6a918ca42)。
3、绑定两块网卡
(1)、创建出一个bond网卡
[root@centos ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=balance-rr"
连接 "bond0" (0fe88e8a-fdd2-4ecb-9b00-e90e5e321b2f) 已成功添加。
(2)、向bond0添加从属网卡
[root@centos ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens160 master bond0
连接 "bond0-port1" (e86c8dbb-21ec-487f-964f-87a13699c092) 已成功添加。
[root@centos ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens192 master bond0
连接 "bond0-port2" (50195351-cf26-441d-ac66-a922d00d9183) 已成功添加。
(3)、配置bond0设备的网卡信息
//IP地址与子网掩码
[root@centos ~]# nmcli connection modify bond0 ipv4.addresses 192.168.2.20/24
//网关地址
[root@centos ~]# nmcli connection modify bond0 ipv4.gateway 192.168.2.1
//DNS
[root@centos ~]# nmcli connection modify bond0 ipv4.dns 192.168.2.1
//手动配置
[root@centos ~]# nmcli connection modify bond0 ipv4.method manual
(4)、启动设备并查看状态
//启动设备
[root@centos ~]# nmcli connection up bond0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
//查看状态
[root@centos ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens160 ethernet 已连接 ens160
bond0 bond 已连接 bond0
virbr0 bridge 连接(外部) virbr0
ens192 ethernet 已连接 bond0-port2
lo loopback 未托管 --
virbr0-nic tun 未托管 --
二、远程控制服务
1、配置sshd服务
(1)、SSH介绍
SSH(Secure Shell)是一种能够以安全的方式提供远程登陆的协议,也是目前远程管理Linux系统的首先方式。在此之前一般使用FTP或Telnet来进行远程登陆。但是因为它们以明文的形式在网络传输账户密码和数据信息,因此很不安全,容易受到黑客发起的中间人攻击。
(2)、安全验证方法
第一种:基于口令的验证:用账户和密码来验证登录。
第二种:基于密钥的验证:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较。
(3)、sshd服务配置文件中包含的参数以及作用
参数 | 作用 |
---|---|
Port 22 | 默认的sshd服务端口 |
ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 |
Protocol 2 | SSH协议的版本号 |
HostKey /etc/ssh/ssh_host_key | SSH协议版本号为1时,DES私钥存放的位置 |
HostKey /etc/ssh/ssh_host_rsa_key | SSH协议版本号为2时,RSA私钥存放的位置 |
HostKey /etc/ssh/ssh_host_dsa_key | SSH协议版本号为2时,DSA私钥存放的位置 |
PermitRootLogin yes | 设定是否允许root管理员直接登录 |
StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
MaxAuthTries 6 | 最大密码尝试次数 |
MaxSessions 10 | 最大终端数 |
PasswordAuthentication yes | 是否允许密码验证 |
PermitEmptyPasswords no | 是否允许空密码登录 |
2、安全密钥验证
(1)、客户端生成密钥对
┌──(kali㉿kali)-[~]
└─$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kali/.ssh/id_rsa): //按回车键或设置密钥的存储路径
Created directory '/home/kali/.ssh'.
Enter passphrase (empty for no passphrase): //按回车键或设置密钥的密码
Enter same passphrase again: //再次按回车键或设置密钥的密码
Your identification has been saved in /home/kali/.ssh/id_rsa
Your public key has been saved in /home/kali/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:ulKB+iTXu2HYj6hLkFGBLvEwKSNNknumiRNfzMkF5g8 kali@kali
The key's randomart image is:
+---[RSA 3072]----+
|.*+.o. |
|@o.o . |
|=B +E+ |
|+++ Bo. |
|=B o ...S |
|=.+ ooo. |
| ..=..=. |
| . oo.= |
| oo..+.. |
+----[SHA256]-----+
(2)、把客户机生成的公钥文件传送至服务器
┌──(kali㉿kali)-[~]
└─$ ssh-copy-id root@192.168.2.20
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/kali/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
//管理员密码
root@192.168.2.20's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.2.20'"
and check to make sure that only the key(s) you wanted were added.
(3)、对服务器设置只允许密钥验证,拒绝传统口令验证,并重启服务
//编辑文件
[root@centos ~]# vim /etc/ssh/sshd_config
68 #PasswordAuthentication yes
69 #PermitEmptyPasswords no
70 PasswordAuthentication yes
//重启服务
[root@centos ~]# systemctl restart sshd
(4)、客户端登录
┌──(kali㉿kali)-[~]
└─$ ssh root@192.168.2.20
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Wed May 3 17:11:32 2023 from 192.168.2.44
[root@centos ~]#
3、远程传输命令
(1)、scp命令
scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令。
//上传文件
命令格式:scp [参数] 本地文件 远程账户@远程IP地址:远程目录
//下载文件
命令格式:scp [参数] 远程账号@远程IP地址:远程文件 本地目录
(2)、scp命令可用的参数及作用
参数 | 作用 |
---|---|
-v | 显示详细的连接进度 |
-P | 指定远程主机的sshd端口号 |
-r | 用于传送文件夹 |
-6 | 使用IPv6协议 |
(3)、上传文件
//创建一个文本
┌──(kali㉿kali)-[~]
└─$ echo "Welcome to www.baidu.com" > redme.txt
//上传文件
┌──(kali㉿kali)-[~]
└─$ scp /home/kali/redme.txt root@192.168.2.20:/root
redme.txt 100% 25 22.0KB/s 00:00
(4)、下载文件
//下载文件
┌──(kali㉿kali)-[~]
└─$ scp root@192.168.2.20:/etc/redhat-release /home/kali
redhat-release 100% 30 11.1KB/s 00:00
//查看文件
┌──(kali㉿kali)-[~]
└─$ cat redhat-release
CentOS Linux release 8.5.2111
三、检索日志
1、常见的日志文件保存路径
文件路径及命令 | 作用 |
---|---|
/var/log/boot.log | 系统开机自检事件及引导过程等信息 |
/var/log/lastlog | 用户登陆成功时间、终端名称及IP地址等信息 |
/var/log/btmp | 记录登陆失败的时间、终端名称及IP地址等信息 |
/var/log/messages | 系统及各个服务的运行和报错信息 |
/var/log/secure | 系统安全相关的信息 |
/var/log/wtmp | 系统启动与开机等相关信息 |
2、journalctl命令
journalctl命令用于检索和管理系统日志信息,英文全称为:“journal control”。
语法格式:journalctl [参数]
3、journalctl命令中常用按键及作用
参数 | 作用 |
---|---|
-k | 内核日志 |
-b | 启动日志 |
-u | 指定服务 |
-n | 指定条数 |
-p | 指定类型 |
-f | 实时刷新 |
–since | 指定时间 |
–disk-usage | 占用空间 |
5、查看你系统最后5条日志信息
[root@centos ~]# journalctl -n 5
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
5月 03 17:45:27 centos systemd[1]: Starting Network Manager Script >
5月 03 17:45:27 centos dbus-daemon[981]: [system] Successfully acti>
5月 03 17:45:27 centos systemd[1]: Started Network Manager Script D>
5月 03 17:45:37 centos systemd[1]: NetworkManager-dispatcher.servic>
5月 03 17:51:05 centos cupsd[1158]: REQUEST localhost - - "POST / H>
6、实时刷新日志内容
[root@centos ~]# journalctl -f
-- Logs begin at Wed 2023-05-03 16:48:16 CST. --
5月 03 17:41:03 centos systemd[1]: session-12.scope: Succeeded.
5月 03 17:41:03 centos systemd-logind[1105]: Session 12 logged out. Waiting for processes to exit.
5月 03 17:41:03 centos systemd-logind[1105]: Removed session 12.
5月 03 17:45:27 centos NetworkManager[1145]: <info> [1683107127.7531] dhcp6 (ens160): state changed bound -> bound, address=240e:3a1:3a82:21e1:20c:29ff:fe21:f72d
7、日志分类等级
日志等级 | 说明介绍 |
---|---|
emerg | 系统出现严重故障,内核崩溃等情况 |
alert | 应立即修复的故障,数据库损坏等情况 |
crit | 危险较高的故障,硬盘损坏导致程序运行失败的情况 |
err | 一般危险的故障,某个服务启动或运行时阿比的情况 |
warning | 警告信息,某个服务参数或功能错误的情况 |
notice | 一般无危险的故障,只是需要处理的情况 |
info | 通用性消息,给用户提示一些有用信息 |
debug | 调试程序所产生的信息 |
none | 没有优先级,不做日志记录 |
8、查看危险较高的故障
[root@centos ~]# journalctl -p crit
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
-- No entries --
9、仅查询今日的日志信息
[root@centos ~]# journalctl --since today
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
5月 03 16:48:16 centos kernel: Linux version 4.18.0-348.7.1.el8_5.x>
5月 03 16:48:16 centos kernel: Command line: BOOT_IMAGE=(hd0,msdos1>
5月 03 16:48:16 centos kernel: Disabled fast string operations
5月 03 16:48:16 centos kernel: x86/fpu: Supporting XSAVE feature 0x>
5月 03 16:48:16 centos kernel: BIOS-provided physical RAM map:
10、查看最近一小时的日志信息
[root@centos ~]#
[root@centos ~]# journalctl --since "-1 hour"
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
5月 03 17:01:25 centos dbus-daemon[2383]: [session uid=0 pid=2383] >
5月 03 17:10:54 centos rz[3496]: [root] no.name/ZMODEM: got error
11、查询上午8点整到10点整的日志信息
[root@centos ~]# journalctl --since "8:00" --until "12:00"
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
12、查询指定服务的日志信息
语法格式:journalctl _SYSTEMD_UNIT=服务名称.service
[root@centos ~]# journalctl _SYSTEMD_UNIT=sshd.service
-- Logs begin at Wed 2023-05-03 16:48:16 CST, end at Wed 2023-05-03>
5月 03 16:48:24 centos sshd[1163]: Server listening on 0.0.0.0 port>
5月 03 16:48:24 centos sshd[1163]: Server listening on :: port 22.
5月 03 17:05:55 centos sshd[3347]: Connection reset by 192.168.2.44>
5月 03 17:06:06 centos sshd[3349]: Connection reset by 192.168.2.44>
5月 03 17:06:42 centos sshd[3360]: Accepted password for root from >
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。