💖1.1 什么是SSH?
Secure Shell 的缩写 SSH 是专为远程登录会话和其他网络服务提供安全性的协议。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
💖1.2 SSH主要的功能是?
主要用于客户端与远程主机的安全链接和交互。
💖1.3 SSH与Telnet之间有什么关系?
ssh默认使用端口22 ssh默认支持root直接连接。
Telnet默认使用端口23 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。
telnet不支持root直接连接,----》shark---->follow抓包会显示普通用户密码
💖1.4 抓包分析SSH与Telnet的区别?
telnet 使用在 交换机 路由器 防火墙 等这类设备上 ssh 使用在 服务器领域 (
无论你是什么Linux的发行版本 统统都是使用ssh远程服务 )
telnet可以 使用在Linux上,用户也可以通过telnet去连接服务器?但是有问题?
1.telnet明文,,必须使用普通用户。 23/tcp
2.ssh密文,ssh默认支持root直接连接。 22/tcp
💖1.5 SSH相关客户端指令ssh、scp、sftp?
C/S (客户端,服务端)
Client / Server --> QQ 电脑客户端 --> QQ 服务端
**一 ssh:**用来连接远程Linux服务器 ( Xshell底层,调用的就是ssh命令 ) $ ssh
root@10.0.0.7 通过ssh命令 连接 10.0.0.7这台Linux服务器 使用的是 root的系统用户
二 scp:远程拷贝,全量拷贝(每次都全量) push 推: scp -rp /etc
root@172.16.1.31:/opt pull 拉: scp root@172.16.1.31:/opt/xx /tmp
参数:
递归: -r
保持属性:-p
限速:-l (8bit=1Byte ( 临时拷贝一个大文件,需要使用 ))
**三 sftp:**远程传输 --> ( XFTP工具,开发使用最多 )
rz不支持传输文件夹、同时不支持传输大于4个G的文件
Xshell 统统可以搞定,支持断点续传
💖1.6 SSH远程登录方式、用户密码、秘钥方式?
就好比手机:
密码解锁 ( 输入用户名 输入密码 )
指纹解锁 ( 秘钥方式 )
用户密码: 简单容易被破解、复杂记不住 xudeMacBook-Pro:~ xuliangwei$ ssh root@10.0.0.7 root@10.0.0.7’s password: #输入密码基于密钥的方式来实现: 生成一对拥有数学关系的秘钥对。 ( 公钥(🔐)------------私钥(🔑) ) 公钥加密---------------私钥解密。 公钥可以对外提供, 对外开放。 私钥只有自己持有,不对外开放实现 10.0.0.61 免密码登录 10.0.0.7讲解
10.0.0.61 生成一对 密钥对 公钥和私钥
10.0.0.7 将公钥 放一份到 10.0.0.7 服务器上
10.0.0.61 去连接 10.0.0.7
10.0.0.7 会返回 公钥询问(这个公钥是之前61 推送给7 的)
10.0.0.61 私钥解密经10.0.0.7公钥加密的信息
实现 10.0.0.61 免密码登录 10.0.0.7操作
[root@manager ~]# ssh-keygen -C 457801170@qq.com(回车回车回车) # -C 可以分清公钥是谁的 [root@manager ~]# ll ~/.ssh/ -rw------- 1 root root 1675 4月 20 11:03 id_rsa 私钥(��) -rw-r--r-- 1 root root 398 4月 20 11:03 id_rsa.pub 公钥(��) [root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.7 ssh-copy-id 拷贝公钥 -i 指定公钥的位置 拷贝到 10.0.0.7 这台服务器的 root用户下~./.ssh/目录权限700 秘钥权限600 公钥(��) [root@manager ~]# ssh root@10.0.0.7 [root@web01 ~]#非对称加密图解:
授权并执行 chmod +x /server/scripts/push_public.sh sh /server/scripts/push_public.sh
ssh连接时,要等待30s-1分钟 才提示输入密码? 可以对IP做了反向解析 ssh作为对外连接的一个服务,会不会被破解。 ( 不是很安全 ) 所以ssh的安全、我们只需要保证对外的那一台就足够了? 因为其他的节点都是内部使用,无需对外。 密码一定要三个月一换 ( 常识 )
SSH服务登录防护需进行如下配置调整,先对如下参数进行了解
vim /etc/ssh/sshd_config Port 6666 # 变更SSH服务远程连接端口 PermitRootLogin no # 禁止root用户直接远程登录 只能拿秘钥登录,慎用。 PasswordAuthentication no # 禁止使用密码直接远程登录 -->配置好了以后--->先登录系统中的普通用户---->su - root--> passwd UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数 GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟变更配置一定要重启
1.更改远程连接登陆的端口 默认ssh是22端口 如果你修改为其他的端口 是不是风险就降低了很多 2.禁止ROOT管理员直接登录 root不能登录,但是可以使用普通用户 3.密码认证方式改为密钥认证 直接拒绝密码登录(较少) 4.重要服务不使用公网IP地址 * 5.使用防火墙限制来源IP地址
这个的底层还是跟我们讲的ssh免密是一个思路. 安装请跳转-----> 链接
1.下载和配置
cat /server/scripts/install_jumpser.sh #!bin/bash cd /opt && \ rpm -qa wget if [ $? -ne 0 ];then yum install wget -y fi ls /opt/setuptools/ yum install git -y if [ $? -ne 0 ];then git clone --depth=1 https://github.com/jumpserver/setuptools.git fi cd setuptools && \ ls /opt/setuptools/config.conf if [ $? -ne 0 ];then cp config_example.conf config.conf fi2.安装:
/opt/setuptools/jmsctl.sh install3.启动:
/opt/setuptools/jmsctl.sh start4.登录web页面:
Web 登陆信息: http://10.0.0.61:80 (访问你的服务器Ip和80端口)
SSH 登录信息: ssh admin@10.0.0.61 -p2222
web界面初始用户名密码: admin admin
[如果你是云服务器请在安全组放行 80 和 2222 端口]