ToB企服应用市场:ToB评测及商务社交产业平台
标题:
零基础掌握SSH安全登录:从入门到实战全攻略发起收藏!
[打印本页]
作者:
海哥
时间:
2025-1-6 02:12
标题:
零基础掌握SSH安全登录:从入门到实战全攻略发起收藏!
什么是SSH
SSH 或 Secure Shell 协议是一种远程管理协议,允许用户通过 Internet 访问、控制和修改其远程服务器。
SSH 服务是作为未加密 Telnet 的安全替代品而创建的,它利用加密技能来确保进出远程服务器的全部通讯都以加密方式进行。
SSH是一种网络协议
简朴说,SSH是一种网络协议,用于盘算机之间的加密登录。
如果一个用户从本地盘算机,利用SSH协议登录另一台远程盘算机,我们就可以认为,这种登录是安全的,纵然被中途截获,暗码也不会泄露。
为什么需要SSH
利用SSH协议登录另一台远程盘算机,这种登录是安全的,纵然被中途截获,暗码也不会泄露。
以前利用FTP或telnet登录服务器,都是以明文的形式在网络中发送账号暗码,很容易被黑客截取到数据,篡改后威胁服务器数据安全。
端口号设定
阐明:端口号只有整数,范围是从0 到65535
1~255:一般是知名端口号,如:ftp 21号、web 80、ssh 22、telnet 23号等
256~1023:通常都是由Unix系统占用来提供特定的服务
1024~5000:客户端的临时端口,随机产生
大于5000:为互联网上的其他服务预留,工作里一般发起直接用大于5000的端口,并且要利用netstat下令查抄下。
今日阅读福利:《网络安全词汇术语汇编》
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包罗各种常用工具和黑客技能电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
SSH暗码登录原理
1、加密算法(了解)
①对称加密算法(DES) 加密解密共用同一把钥匙
优点、该算法加密强度大,几乎无法破解
缺点,密钥不能丢失,拿到加密方式,自然源数据就被破解,暴露给别人了
复制代码
②非对称加密算法(RSA)
非对称加密分为:公钥(Public Key)与私钥(Private Key)
使用公钥加密后的密文,只能使用对应的私钥才能解开,破解的可能性很低。
复制代码
总结:
1.发送方(于超)利用吸收方(杰西卡)发来的公钥将明文数据加密为密文,然后再发出;
2.吸收方(杰西卡)收到密文消息后,用自己本地保存的私钥解密这个密文,最终得到明文数据;
对称、非对称加密算法区别是?
对称加密
利用同一个密钥进行加密和解密,密钥容易泄露
加密速度快,效率高
数据传输,速度快
安全性较低;
非对称加密
利用差别的密钥(公钥和私钥)进行加密和解密
加密速度远远慢于对称加密
数据传输速度慢
安全性较高
SSH认证方式
我们登录linux服务器,利用ssh登录的话有两种认证方式
账户暗码
root
yuchao666
复制代码
密钥认证
[root@web-7 ~]#ls /root/.ssh/id_rsa
id_rsa id_rsa.pub
复制代码
(重点)SSH基于用户名暗码认证原理
密码登录,使用的是目标机器的,公私钥
[root@rsync-41 ~]#ls /etc/ssh/ssh_host_ecdsa_key*
/etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub
复制代码
1.SSH客户端向SSH服务端发起登录哀求
2.SSH服务端将自己的公钥发给SSH客户端
注意,如果是首次创建毗连,会有如下指纹信息确认,让用户确认自己毗连的机器信息精确。
[root@web-7 ~]#ssh root@10.0.0.41
The authenticity of host '10.0.0.41 (10.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:Csqwr63+SZRFFOug/IGoFTgRe8hDSI/QalSMBcC6IaU.
ECDSA key fingerprint is MD5:4c:9a:37:e2:5b:b5:de:a8:bf:90:b5:28:d8:5b:ac:60.
Are you sure you want to continue connecting (yes/no)?
复制代码
3.在首次登录时,只要你输入了yes,就表示你信任了该机器的公钥,该机器的公钥信息会写入到客户端的~/.ssh/known_hosts
你可以在客户端检查该文件
[root@web-7 ~]#cat ~/.ssh/known_hosts
10.0.0.41 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL/Sx3bAaNcKqo7pC4FTYk3gyZ6hd1D/DKUWVfOd4gZb/8XwlAxWauceHe/BAsW5Z8pEmG6AjSyHM8ckOs94c7Y=
如果你删除了该公钥,下次ssh连接,会再次让你确认机器的指纹信息
复制代码
4.下一步就是等待你输入暗码,只要你输入了暗码,SSH客户端就会利用服务端发来的公钥,将输入的暗码加密为密文后,再发给SSH服务端;
[root@web-7 ~]#ssh root@10.0.0.41
The authenticity of host '10.0.0.41 (10.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:Csqwr63+SZRFFOug/IGoFTgRe8hDSI/QalSMBcC6IaU.
ECDSA key fingerprint is MD5:4c:9a:37:e2:5b:b5:de:a8:bf:90:b5:28:d8:5b:ac:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.41' (ECDSA) to the list of known hosts.
root@10.0.0.41's password:
复制代码
5.SSH服务端收到密文暗码后,再用自己本地的私钥解密,看到输入的暗码;
root@10.0.0.41's password: **********
你输入的密码,会被公钥加密,发送到目标机器上验证,ssh真是太靠谱了
复制代码
6.SSH服务端将解密后的明文,和linux上的用户暗码文件做对比,/etc/shadow,精确则登录成功
7.ssh认证成功后,返回登录成功,并且返回一个随机遇话口令给客户端,这个随机口令用于后续两台机器之间的数据通讯加密。
机器指纹信息
只要是两台新机器,首次ssh毗连,就会出现如下的指纹确认 [root@web-7 ~]# [root@web-7 ~]#ssh root@10.0.0.41
The authenticity of host '10.0.0.41 (10.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:Csqwr63+SZRFFOug/IGoFTgRe8hDSI/QalSMBcC6IaU.
ECDSA key fingerprint is MD5:4c:9a:37:e2:5b:b5:de:a8:bf:90:b5:28:d8:5b:ac:60.
Are you sure you want to continue connecting (yes/no)?
这一段信息意思是,无法确认10.0.0.41这台机器的真实性,但是发现了机器的指纹 SHA256:Csqwr63+SZRFFOug/IGoFTgRe8hDSI/QalSMBcC6IaU. 你自己确认下是否是你要毗连的机器
复制代码
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包罗各种常用工具和黑客技能电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
检察机器公钥
直接去rsync-41机器上查抄公钥信息
[root@rsync-41 ~]#
[root@rsync-41 ~]#cat /etc/ssh/ssh_host_ecdsa_key.pub
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL/Sx3bAaNcKqo7pC4FTYk3gyZ6hd1D/DKUWVfOd4gZb/8XwlAxWauceHe/BAsW5Z8pEmG6AjSyHM8ckOs94c7Y=
复制代码
指纹是公钥加密而来(sha256算法)
盘算rsync-41机器的指纹,再和我们第一次ssh毗连的下令比较,是否同等
对比机器指纹
ssh暗码认证小结
SSH是Linux下远程管理的工具,相比Telnet安全,运维人员必备的神器!
SSH的全称Secure Shell,安全的shell,是Client/Server架构,默认端口号为22,TCP协议
必须搞懂SSH通信加密的原理、过程
复制代码
搭建SSH服务
(一)关闭防火墙和selinux
# 关闭firewalld防火墙
# 临时关闭
systemctl stop firewalld
# 关闭开机自启动
systemctl disable firewalld
# 关闭selinux
# 临时关闭
setenforce 0
# 修改配置文件 永久关闭
vim /etc/selinux/config
SELINUX=disabled
复制代码
二)配置yum源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
这个yum源配置,
复制代码
(三)软件安装
①确认是否安装openssh
由于每一台机器都是默认安装了sshd服务的,这里你可以采用期中综合架构里的任何一台机器测试。
[root@web-7 ~]#rpm -qa |grep openssh
openssh-server-7.4p1-16.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64
openssh-7.4p1-16.el7.x86_64
复制代码
②检察openssh-server软件包的文件列表
[root@yuchao-linux01 ~]# rpm -ql openssh-server
# 配置文件
/etc/ssh/sshd_config
/etc/sysconfig/sshd
# 服务管理脚本
/usr/lib/systemd/system/sshd.service => systemctl start sshd
# 文件共享服务 提供文件上传下载的服务
/usr/libexec/openssh/sftp-server
# 二进制文件程序文件
/usr/sbin/sshd
# 公钥生成工具
/usr/sbin/sshd-keygen
# man手册
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
复制代码
③检察openssh-clients软件包的文件列表
rpm -ql openssh-clients
# 客户端配置文件
/etc/ssh/ssh_config
# 远程copy命令 服务器间进行文件传输
/usr/bin/scp
# sftp客户端 上传下载文件操作
/usr/bin/sftp
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
# 客户端man手册
/usr/share/man/man1/scp.1.gz
/usr/share/man/man1/sftp.1.gz
/usr/share/man/man1/slogin.1.gz
/usr/share/man/man1/ssh-add.1.gz
/usr/share/man/man1/ssh-agent.1.gz
/usr/share/man/man1/ssh-copy-id.1.gz
/usr/share/man/man1/ssh-keyscan.1.gz
/usr/share/man/man1/ssh.1.gz
/usr/share/man/man5/ssh_config.5.gz
/usr/share/man/man8/ssh-pkcs11-helper.8.gz
复制代码
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包罗各种常用工具和黑客技能电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
(四)ssh基本安全配置
提升服务器ssh安全,就是来修改该配置文件了,先来看简朴的配置;
往下继续看,还准备了ssh优化篇;
man 5 sshd_config
[root@web-7 ~]#cat /etc/ssh/sshd_config
1.禁用root用户登录、降低权限
2.修改端口
配置文件如下
[root@web-7 ~]#grep -E '^(Permit|Port)' /etc/ssh/sshd_config
Port 22422
PermitRootLogin no
复制代码
4.1 pwgen随机暗码天生工具
别忘记创建一个用于登录的平凡用户,暗码随机天生
1.安装
yum install -y pwgen
2.命令参数,生成不同的密码规则
pwgen支持的选项。
-c或-大写字母
在密码中至少包含一个大写字母
-A或--不大写
不在密码中包含大写字母
-n 或 --数字
在密码中至少包含一个数字
-0 或 --no-numerals
不在密码中包含数字
-y或--符号
在密码中至少包括一个特殊符号
-r <chars> 或 --remove-chars=<chars>(删除字符
从生成密码的字符集中删除字符
-s 或 --secure
生成完全随机的密码
-B 或--模棱两可
不要在密码中包含模棱两可的字符
-h 或 --help
打印一个帮助信息
-H 或 --sha1=path/to/file[#seed] 。
使用指定文件的sha1哈希值作为(不那么)随机生成器
-C
以列形式打印生成的密码
-1
不在列中打印生成的密码
-v或--不使用元音
不要使用任何元音,以避免意外的讨厌的字。
3.生成 完全随机、携带数字的密码
[root@web-7 ~]#pwgen -sn |head -1
T0AR1i2c
4.设置密码
[root@web-7 ~]#echo T0AR1i2c | passwd --stdin yuchao01
复制代码
随机天生指定风格的暗码
打印,包罗大写字母、数字、不包罗特别歧义、完全随机、且一行一个暗码、暗码长度为8、天生5个暗码。
[root@web-7 ~]#pwgen -cnBs1 8 5
KaKWvp9F
4HHvsWWR
NpKWn3pN
LuqzuAh9
bR7Xg9Hs
复制代码
改了配置文件就得重启
(五)服务管理
# 重启服务
systemctl restart sshd
# 查看状态
systemctl status sshd
# 进程查看方式
ps aux |grep sshd
# 端口查看方式
netstat -lntp|grep sshd
# 开启自启动
systemctl enable sshd
复制代码
(六)登录测试
无法登录
[C:\~]$ ssh root@10.0.0.7 22422
可以登录
[C:\~]$
[C:\~]$ ssh yuchao01@10.0.0.7 22422
Connecting to 10.0.0.7:22422...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
WARNING! The remote SSH server rejected X11 forwarding request.
[yuchao01@web-7 ~]$
[yuchao01@web-7 ~]$echo "Linux"Linux
复制代码
3、 sshd服务部署小结
掌握ssh认证方式
ssh通讯加密方式原理、流程。
暗码认证模式
禁止root登录服务器,增强服务器安全性
更改ssh服务默认端口,增强服务器安全性
暗码天生工具,天生随机暗码,增强安全性。
纯熟利用ssh客户端工具,xshell、ssh下令、secureCRT等。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有打仗过网络安全的同砚,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没题目。
因篇幅有限,仅展示部分资料,朋侪们如果有需要
全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4