SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务

SSH基本概述

SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输,确保了数据传输安全
# 主要功能有:
1.提供远程连接服务器的服务
	linux远程连接协议:ssh 22  telnet 23
2.对传输进行加密

SSH服务会对传输服务提供远程连接服务,telnet也能提供远程连接服务,区别是:
ssh 服务会对传输数据进行加密,监听本地22/tcp端口, ssh服务默认支持root用户登录
telnet 服务不对数据进行加密,建通在本地23/tcp端口, telnet默认不支持root用户登录 
服务连接方式 服务数据传输 服务监听端口 服务登录用户
ssh 加密 22/tcp 默认支持root用户
telnet 明文 23/tcp 不支持root用户

一、SSH相关命令

SSH 有客户端与服务端,我们将这种模式称为C|S架构,ssh客户端支持windows、Linux、Mac等平台,在ssh客户端中包含ssh|slogin远程登录、scp远程拷贝,sftp文件传输、ssh-copy-id密钥分发等应用

#    ssh root@172.16.1.21

ssh		命令
-p		指定端口(在终端无法使用)
22		指定ssh协议端口
root	连接时使用的用户(如果不写,默认使用当前服务器当前用户)

@		分隔符
172.16.1.21	 远端服务器IP

-o  StrictHostKeyChecking=no  登陆时跳过验证身份

二、telnet连接

2.1、安装telnet

yum install -y telnet-server

2.2、启动telnet

systemctl start telnet.socket

2.3、创建普通用户

# 不能使用root登录,所以需要创建普通用户
useradd rock
echo 1 | passwd --stdin rock

2.4、验证登录

[d:\~]$ telnet 192.168.207.21

三、scp命令(远程文件传输)

#命令:    scp
参数:
-r		表示递归拷贝目录
-l		限速。单位是kb
-P		指定端口,默认是22
-p		保持传输文件属性不变
# scp支持推和拉
推
#  scp -r /data/ root@172.16.1.31:/mnt/
将本地/data文件推送到远程服务器的/mnt/目录下
拉
#  scp root@172.16.1.31:/mnt/*  /data
将远程服务器/mnt/目录下文件拉到本地 /data目录下

-l		限速,单位是kb
#设置速度为10M 10*1024*8=81920
[root@nfs]# scp -l 81920 file root@172.16.1.41:/backup/

四、sftp命令

#命令:  sftp
#  建立连接
sftp root@172.16.1.31

# sftp支持推和拉
# sftp使用get下载文件至于本地服务器
sftp>         get 1.txt /root
命令  远程服务器文件   本地服务器位置
# sftp使用put上传本地服务器文件至远程服务器
sftp>		put /data/1.txt  /mnt/
命令	本地服务器文件   远程服务器位置

sftp:
	1.能上传文件夹
	2.能支持上传大于4G的文件
rz:
	1.不能上传文件夹
	2.不支持断点续传
	3.只能上传小于4G的文件

五、SSH验证远程登录

5.1、方式一:基于账户密码的方式远程登录

# 需要知道服务器的IP,端口,账户,密码才可以连接远程主机
ssh -p 22 root@172.16.1.31 ---输入密码

密码设置条件

1.复杂的密码:yonghu_12@31_sysnum(记不住)
2.简单的密码:1 123(容易被破解)
3.每台服务器密码不⼀样
4.密码三个⽉更换⼀次
5.输⼊密码错误三次⾃动锁死
6.密码有key,30秒⼀变或者1分钟⼀变

5.2、方式二:密钥

默认情况下,通过ssh客户端命令登陆远程服务器,需要提供远程系统上的帐号与密码,但为了降低密码
泄露的机率和提⾼登陆的⽅便性,建议使⽤密钥验证⽅式。

SSH远程管理服务---------常有江南船,寄书家中否

5.2.1、生成密钥

# 命令: ssh-keygen
参数:
-t		指定密钥类型(rsa、dsa)
-c		指定用户邮箱

#      ssh-keygen

ps:执行该命令后,会要求输入保护密钥的密码,直接回车略过

5.2.2、发送密钥

方式一:
命令方式推送公钥
#  ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.31
输入:'yes'
输入:'密码' 发送密钥需要输入远程主机用户密码

方式二:
手动复制公钥
cat /root/.ssh/id_rsa.pub

5.3、免交互expect

[root@m01 ~]# yum install -y expect

写入脚本:
#!/usr/bin/expect
set ip 10.0.0.7
set pass 1
set timeout 30
spawn ssh root@$ip
expect {
 "(yes/no)" {send "yes\r"; exp_continue}
 "password:" {send "$pass\r"}
}
expect "root@*" {send "df -h\r"}
expect "root@*" {send "exit\r"}
expect eof

5.4、免交互sshpass

# yum install -y sshpass
# sshpass -p 1 ssh root@172.16.1.7
sshpass 命令
-p 指定密码
1 密码
ssh 连接命令
root ⽤户
@ 分隔符
172.16.1.7 主机

写入脚本:
[root@m01 .ssh]# vim ssh.sh
#!/bin/bash
for num in 41 31 7;do
 echo ------------------ 10.0.0.$num -----------------
 sshpass -p 1 ssh -o StrictHostKeyChecking=no root@10.0.0.$num df -h
done

六、SSH安全优化

vim /etc/ssh/sshd_conf

ort 4399 # 修改sshd服务的默认端⼝
PermitRootLogin no # 禁⽌使⽤root登录服务器
PasswordAuthentication no # 禁⽌使⽤密码登录
UseDNS no # 禁⽌ssh进⾏dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication no # 禁⽌GSS认证,减少连接时产⽣的延迟

xshell连接不上虚拟机

#1.查⽹络,连接谁就ping谁
ping 10.0.0.31
tcping 10.0.0.31 22
#2.查端⼝
telnet 10.0.0.31 22
tcping 10.0.0.31 22
#3.如果可以ping通,端⼝不通
需要检测服务端⼝
netstat -lntp | grep sshd
#4.⽹卡是否启动
ip a
#5.防⽕墙
查看防⽕墙规则是否允许ssh服务
firewall-cmd --list-all
#6.查看虚拟⽹络编辑器
查看⽹关是否正确
#7.查看电脑的VMnat8⽹卡,配置信息是否正确

七、wireshark

7.1、什么是wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的途径取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

抓包过程

1.开启wireshark,选择接入的网络(需要抓包软件接入的网络)
2.可以选择服务关键字进行筛选如:ssh,telnet
3.执行命令
4.wireshark抓包数据查看
5.选择查看数据包

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

SSH远程管理服务---------常有江南船,寄书家中否

上一篇:python 调用redis


下一篇:单(liu_runda学长的神题)