远程连接之ssh的使用(日志监控)_ssh连接日志_小朱撕码迹的博客-程序员信息网

技术标签: ubuntu  linux  ssh远程连接  windows  

ssh的简介

ssh服务【Secure Shell 】:SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录提供服务。
解决的问题: 对服务器的远程控制,远程操作。

ssh服务是安全的、加密、基于S/C(服务端/客户端)的远程连接服务

​ 【运行的sshd进程会监听22号端口,提供远程登录的服务,服务的内容: 远程操作服务器】

OpenSSH是使用SSH协议远程登录的首选连接工具。它对所有流量进行加密,以消除窃听、连接劫持和其他攻击。此外,OpenSSH还提供了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。

/etc/ssh     #查看ssh下有哪些文件
[[email protected] ~]# rpm -qa|grep openssh
openssh-server-7.4p1-21.el7.x86_64   --》提供服务的软件包  -->sshd
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64  --》提供客户端使用的命令的软件包,ssh, scp, and sftp.

rpm  是linux里软件管理的命令   【-qa 查询所有的已经安装了的软件  query all

yum 也是linux里的软件管理的命令,底层是基于rpm的 --》yum 是使用python开发的软件管理工具

如何判断一个服务是启动还是没有启动?

1.查看进程
		ps aux|grep sshd
2.查看端口
		[[email protected] ~]# ss -anplut|grep sshd
		tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=1043,fd=3))
		[[email protected] ~]# netstat -anplut|grep sshd
		tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1043/sshd
	
		[[email protected] ~]# lsof -i:22
		
[[email protected]-server ~]$ w      #查看有哪些用户远程登录到linux系统里了

ssh命令用于远程管理Linux主机,语法:ssh [-p]端口号 主机@IP地址

使用ssh命令远程登录
方式1: ssh 用户名@服务器地址   --》推荐
方式2: ssh -l 用户名  服务器地址
方式3: ssh  服务器地址

ssh -p22 root@192.168.31.5        #连接远端服务器 

ifconfig    					  #查看连接是否成功

exit   							  #退出连接

[[email protected] bin]# systemctl  restart sshd  #先stop,再start --》中间会中断sshd服务

[[email protected] bin]# systemctl  reload sshd   #不中断sshd服务, 重新加载配置文件--》相当于restart

密钥实现ssh远程连接,下次连接就不用密码啦【私钥、公要】

#在本地主机中生成“密钥对”,将公钥传送到远程主机中
[[email protected] ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  #回车或设置密钥存放的路径
Enter passphrase (empty for no passphrase):   #回车或设置密码
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:U0qBtk4Cib7atzLDETvKEc8QkT3lPJUM40A6Op8IqTs [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| o=+.+ooo        |
|.o+o= =o .       |
|.o...* .. .      |
|.=o . +. o       |
|= *o +  S        |
|o*++  .  .       |
|=++o             |
|Eo* .            |
|.. =..           |
+----[SHA256]-----+
#ls -a   查看文件
#将公钥传到远端服务器      ssh想要使用公钥加密
ssh-copy-id 192.168.31.5
#在远程服务器中修改sshd服务的配置文件
vim /etc/ssh/sshd_config
#1.将允许的密钥验证的参数设置为yes
PubkeyAuthentication yes
#2.将允许密码验证的参数设置为no
PasswordAuthentication no
#3.保存并退出,重启ssh服务
systemctl restart sshd
#4.检查是否设置完成
[[email protected] ~]# ssh [email protected]
Last login: Sun Aug 15 20:18:42 2021 from 192.168.31.128

修改sshd的配置文件

修改sshd服务的端口号,重新进行远程连接(systemctl restart sshd)

修改端口号的好处:默认情况下为22,不用指定端口别人就可以连接到我的服务器,这样不安全

注意:

​ 1、端口号的范围:0-65535

​ 2、不能使用别的服务已经占用的端口(常见的:20、21、23、25、80、443、3389、3306)

#打开sshd_config文件,修改端口为2233
vim /etc/ssh/sshd_config
Port 2233
#查看端口号
ss -anplut|grep sshd
#重启sshd服务
systemctl restart sshd

#退出远程连接终端,重新连接会发现连接不成功,可能是因为防火墙对新端口默认是拒绝新的端口号的,执行一下命令关闭防火墙和selinux
setenforce 0   #关闭selinux
#/etc/sysconfig/selinux   永久关闭
systemctl stop firewalld     #关闭防火墙

远程传输命令

scp命令用于在网络中安全的传输文件(如果想将文件通过网络传输给其他主机,恰好两台都是Linux系统,就可以使用scp)

将本地文件传送到远程主机 语法:scp [-P端口号 -r接文件夹时要用] 本地文件 远程账户@远程IP地址:远程目录

将本地文件 /lianxi/zjh.txt  传送到远程主机的 /root

[[email protected] lianxi]# scp zjh.txt [email protected]:/root
zjh.txt                  100%   12     0.8KB/s   00:00 

将远程主机文件下载到本地 语法:scp [选项] 远程用户@IP地址:远程文件 本地目录

将远程主机  /root/zhu 下载到本地 /lianxi

[[email protected] lianxi]# scp -P22 -r [email protected]:/root/zhu/ ./
jh.txt 

SSH的常见问题

1、ssh服务关闭后,是否还可以ssh进入服务器?已经ssh连接上的进程是否会退去?
答案: 关闭ssh服务,已经连接的ssh窗口不会断开,继续可以使用
老连接可以继续使用,新的连接连不上

2、如何知道哪些人ssh远程登录进入了我们的linux系统?
答案:w --》查看还在我们linux系统里的用户
查看日志–》/var/log/secure

3、如何加固我们的ssh服务?

​ 答案:1.禁用root用户远程登录 --》黑客就需要去猜我们的用户名了

​ 2.把密码设置复杂

​ 3.修改端口号 --》需要去寻找我的ssh的端口号

​ 4.禁用密码认证,启用密钥认

​ 5.禁止root登录

​ 6.升级openssh,修补漏洞

4、如何暴力破解ssh的用户名(root)和密码?

​ 答案:暴力破解 --》穷举–》一个一个的密码去试试
​ 1万个密码
​ python,shell(脚本)

ssh的实操

#1.修改端口号
ListenAddress 0.0.0.0  --》代表任意的接口的ip地址上都提供ssh服务
#2.禁用root用户登录
ListenAddress 192.168.0.2 --》只是在192.168.0.2上提供ssh服务
PermitRootLogin no --》禁用root用户远程登录   (连接还有详细用户名)
	#为什么禁用了用ssh连的时候不能使用root用户,登录进去就可以用?
    	一连接,我们就要接触sshd,如果已经连了,就不归sshd管了
#3.ssh远程登录的方式
方式1: ssh 用户名@服务器地址   --》推荐
方式2: ssh -l 用户名  服务器地址
方式3: ssh  服务器地址
#4.查看日志
如何知道哪些人ssh远程登录进入了我们的linux系统?
#5.ssh服务器里有了公钥和私钥 为什么还需要使用linux系统里用户名和密码?
#6.kown_hosts文件的作用   #cat man

练习:
		1.修改端口号,具体自定义
		2.禁用root用户登录,新建一个普通的用户sc,并且设置密码
		3.ssh远程登录,在其他的linux系统上或者windows上
		4.查看日志
			tail -f logfile     #实时查看日志
			tail -n logfile     #查看最新n行
		5.查看kown_hosts文件的内容
        
#Ubuntu与centos也可以用ssh连接

日志管理

什么日志?

日志是系统用来记录系统运行时候的一些相关信息文本文件

日志有什么用?

日志是为了保存相关程序的运行状态错误信息等,为了对系统分析保存历史记录以及出现错误时分析错误的使用

Linux系统日志类型:

​ 内核信息

​ 服务信息

​ 应用程序信息

什么是rsyslog?

rsyslog是Linux系统中用来实现日志功能的服务,rsyslog默认是已安装,并且启动的

#rsyslog的状态、启动、停止、重启
systemctl status|start|stop|restart rsyslog

#rsyslog的配置文件为:/etc/rsyslog.conf
#日志消息一般保存在:/var/log
#查看日志命令一般使用
tail -f logfile     #实时查看日志
tail -n logfile     #查看最新n行

facility(设施),用来定义日志消息的来源,方便对日志进行分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xT9Ij8yL-1629042821344)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214216554.png)]

priority(日志级别)定义不同消息的级别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-avslaR2I-1629042821347)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815214352785.png)]

查看日志位置

ssh为例
[[email protected] lianxi]# vim /etc/sshd_config
# Logging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV

日志文件
tail /var/log/secure     #有远程登录的消息

配置日志服务器:多台服务器,同一集中在一台服务器上

日志服务器配置

#在日志服务器中开启tcp或udp监听
vim /etc/rsyslog.cont

# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
#module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

#重启
systemctl restart rsyslog

日志客户配置

vim /etc/rsyslog.conf

systemctl restart rsyslog

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42woNKy2-1629042821349)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210815222859072.png)]

测试效果

yum install samba -y      #在日志客户端安装一个软件
tail /var/log/messages    #查看有没有日志生成
tail /var/log/messages    #在服务器查看生成了日志

temctl restart rsyslog


**日志客户配置**

```python
vim /etc/rsyslog.conf

systemctl restart rsyslog

[外链图片转存中…(img-42woNKy2-1629042821349)]

测试效果

yum install samba -y      #在日志客户端安装一个软件
tail /var/log/messages    #查看有没有日志生成
tail /var/log/messages    #在服务器查看生成了日志
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sc_jizhi/article/details/119722697

智能推荐

35岁的程序员正在消失?No,我认识了一个50岁的程序员!_程序员大咖的博客-程序员信息网

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨大飞码字来源丨大飞码字(BigFly1024)...

Unity URP 渲染管线着色器编程 102 之 曲面细分着色器_urp 曲面细分_张林博的博客-程序员信息网

通过本节的学习可以得到如下的效果将一个低模的模型通过渲染管线的曲面细分功能得到一个高模的结果当我们开启渲染管线的tessellation开关时,我们传统意义上的顶点着色器功能就发生了改变。因为此时我们提交给IA阶段的内容不再被看作是有三个顶点(vertex)的三角面(triangle)(因为经过曲面细分之后才是三角面),而是看作一个有三个控制点(control point)的片(patch)。这里的控制点,可以理解成贝塞尔曲线的控制点或者PhotoShop钢笔工具的控制点,是控制点组成了这

[leetcode]-121. Best Time to Buy and Sell Stock(C语言)_shen_zhu的博客-程序员信息网

Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the stock),...

Spring注解——同一接口有多个实现类,如何注入?@Resource、@Autowired、@Qualifier_注解中包含多个 如何注入_海子幸福人的博客-程序员信息网

这个问题是一个原来的同事去面试的时候被问起来了,然后引发了我的思考,觉得还是有必要梳理一下这种知识点的!先写一个场景,举例说明:1、接口:IAnimal2、实现类:DogImpl ,实现了IAnimal接口。3、业务类:AnimalController假如有一个“动物”的接口 IAnimal, DogImpl类实现了接口 IAnimal, 且该接口只有 DogImpl这一个实...

前端工具-webpack-sourceMap篇_webpack 无map文件反编译_ZhandsomeZ的博客-程序员信息网

前言### 从源码转换讲起JavaScript脚本正变得越来越复杂。大部分源码(尤其是各种函数库和框架)都要经过转换,才能投入生产环境。常见的源码转换,主要是以下三种情况:  (1)压缩,减小体积。比如jQuery 1.9的源码,压缩前是252KB,压缩后是32KB。  (2)多个文件合并,减少HTTP请求数。  (3)其他语言编译成JavaScript。最常见的例子就是CoffeeScript。这三种情况,都使得实际运行的代码不同于开发代码,除错(debug)变得困难重重。.

这里有最全的C++工程师的技术需求,你要做哪方面的开发?_c++工程师供需关系_阿言教编程的博客-程序员信息网

一、C++服务器程序员(流媒体后台,游戏后台,高性能服务器后台)1. 精通C++,STL,Linux等,熟悉设计模式;2. 熟练掌握一门脚本语言(Lua, Python, Perl等);3. 对多线程环境编程有一定的理解,能独立完成服务器端模块的开发、维护和优化;4. 熟练掌握MySQL数据库的开发维护、性能优化;1.精通C++编程,3年以上服务器开发经验;2.有手机游戏或...

随便推点

堪比培训机构的MySQL系列博客_只是甲的博客-程序员信息网

这个blog,我整理了我之前写的MySQL开发系列和MySQL运维系列,知识丰富程度堪比培训机构个人能力有限,如有错误的地方,欢迎指正。文章目录一.MySQL开发系列1.1 MySQL 行转列1.2 MySQL 常用的函数1.3 MySQL 表连接1.4 MySQL分组语句小结1.5 MySQL with语句1.6 MySQL高级窗口函数1.7 MySQL正则表达式1.8 MySQL编程二.MySQL运维系列2.1 MySQL安装2.2 MySQL体系结构2.3 MYSQL启动和关闭2.4 MySQL配

周志华机器学习,3.3编程实现对率回归,并给出西瓜数据集3.0α上的结果_张君君的博客-程序员信息网

3.3编程实现对率回归,并给出西瓜数据集3.0α上的结果数据集:1 0.697 0.460 1 2 0.774 0.376 1 3 0.634 0.264 1 4 0.608 0.318 1 5 0.556 0.215 1 6 0.403 0.237 1 7 0.481 0.149 1 8 0.437 0.211 1 9 0.666 0.091 0 10 0.243 0.267

Python又把GUI界面攻下了,这个界面真漂亮啊!_轻松学Python的博客-程序员信息网

0.引言学Python这么久了,一直想做个界面出来,最近发现Python有个内置库tkinter,利用它可以很轻松做出一些简易的UI界面,首先来看Python官方对Tkinter的说明:The tkinter package (“Tk interface”) is the standard Python interfaceto the Tk GUI toolkit. Both...

Java并发指南开篇:Java并发编程学习大纲_weixin_30877181的博客-程序员信息网

Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉及到的技术原理十分丰富。为了更好地把并发知识形成一个体系,也鉴于本人没有能力写出这类文章,于是参考几位并发编程专家的博客和书籍,做一个简单的整理。一:并发基础和多线程...

完美解决K8s中的Pod无法解析外网域名问题_weixin_34248258的博客-程序员信息网

系统:Ubuntu 18.04.02K8s版本:1.13.4 故障现象:安装KubeDNS后,Pod内无法ping通外网域名,访问外网IP、K8s内部域名或者IP均正常。原因分析,查看Pod中的resolv.conf:kubectl exec busybox -- cat /etc/resolv.conf nameserver 10.96.0.10search default....

python中sys.stdout和sys.stderr_kunkun_1230的博客-程序员信息网

最近,在发布脚本上线时,想要把输出结果和错误记录保存成日志(log),方便查看。这样一来就用到了重定向:sys模块的stdout和stderr1.stdout查看stdout的介绍可见(https://docs.python.org/3/library/sys.html)stdoutis used for the output ofprint()andexpression...

推荐文章

热门文章

相关标签