零基础掌握SSH安全登录:从入门到实战全攻略
如何从零基础快速掌握基础烹饪技巧 #生活乐趣# #美食烹饪乐趣# #烹饪视频#
什么是SSHSSH 或 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命令检查下。
1、加密算法(了解)
①对称加密算法(DES) 加密解密共用同一把钥匙
优点、该算法加密强度大,几乎无法破解 缺点,密钥不能丢失,拿到加密方式,自然源数据就被破解,暴露给别人了 1234
②非对称加密算法(RSA)
非对称加密分为:公钥(Public Key)与私钥(Private Key) 使用公钥加密后的密文,只能使用对应的私钥才能解开,破解的可能性很低。 12345
总结:
1.发送方(于超)使用接收方(杰西卡)发来的公钥将明文数据加密为密文,然后再发出;
2.接收方(杰西卡)收到密文消息后,用自己本地保存的私钥解密这个密文,最终得到明文数据;
对称、非对称加密算法区别是?
对称加密
使用同一个密钥进行加密和解密,密钥容易泄露
加密速度快,效率高
数据传输,速度快
安全性较低;
非对称加密
使用不同的密钥(公钥和私钥)进行加密和解密
加密速度远远慢于对称加密
数据传输速度慢
安全性较高
我们登录linux服务器,使用ssh登录的话有两种认证方式
账户密码
root yuchao666 1234
密钥认证
[root@web-7 ~]#ls /root/.ssh/id_rsa id_rsa id_rsa.pub 1234 (重点)SSH基于用户名密码认证原理
密码登录,使用的是目标机器的,公私钥 [root@rsync-41 ~]#ls /etc/ssh/ssh_host_ecdsa_key* /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub 12345
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)? 1234567
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连接,会再次让你确认机器的指纹信息 1234567
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: 123456789
5.SSH服务端收到密文密码后,再用自己本地的私钥解密,看到输入的密码;
root@10.0.0.41's password: ********** 你输入的密码,会被公钥加密,发送到目标机器上验证,ssh真是太靠谱了 1234
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. 你自己确认下是否是你要连接的机器 12345678910111213 查看机器公钥
直接去rsync-41机器上检查公钥信息
[root@rsync-41 ~]# [root@rsync-41 ~]#cat /etc/ssh/ssh_host_ecdsa_key.pub ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL/Sx3bAaNcKqo7pC4FTYk3gyZ6hd1D/DKUWVfOd4gZb/8XwlAxWauceHe/BAsW5Z8pEmG6AjSyHM8ckOs94c7Y= 12345
指纹是公钥加密而来(sha256算法)
计算rsync-41机器的指纹,再和我们第一次ssh连接的命令比较,是否一致
对比机器指纹
ssh密码认证小结
SSH是Linux下远程管理的工具,相比Telnet安全,运维人员必备的神器! SSH的全称Secure Shell,安全的shell,是Client/Server架构,默认端口号为22,TCP协议 必须搞懂SSH通信加密的原理、过程 12345 搭建SSH服务
(一)关闭防火墙和selinux
# 关闭firewalld防火墙 # 临时关闭 systemctl stop firewalld # 关闭开机自启动 systemctl disable firewalld # 关闭selinux # 临时关闭 setenforce 0 # 修改配置文件 永久关闭 vim /etc/selinux/config SELINUX=disabled
12345678910111213141516二)配置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源配置, 12345678
(三)软件安装
①确认是否安装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 123456
②查看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
1234567891011121314151617181920212223③查看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
123456789101112131415161718192021222324252627282930(四)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 123456789101112
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
1234567891011121314151617181920212223242526272829303132333435363738394041随机生成指定风格的密码
打印,包含大写字母、数字、不包含特殊歧义、完全随机、且一行一个密码、密码长度为8、生成5个密码。
[root@web-7 ~]#pwgen -cnBs1 8 5 KaKWvp9F 4HHvsWWR NpKWn3pN LuqzuAh9 bR7Xg9Hs 123456789
改了配置文件就得重启
(五)服务管理
# 重启服务 systemctl restart sshd # 查看状态 systemctl status sshd # 进程查看方式 ps aux |grep sshd # 端口查看方式 netstat -lntp|grep sshd # 开启自启动 systemctl enable sshd 123456789101112131415
(六)登录测试
无法登录 [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
1234567891011121314151617183、 sshd服务部署小结
掌握ssh认证方式
ssh通信加密方式原理、流程。
密码认证模式
禁止root登录服务器,增强服务器安全性
更改ssh服务默认端口,增强服务器安全性
密码生成工具,生成随机密码,增强安全性。
熟练使用ssh客户端工具,xshell、ssh命令、secureCRT等。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
1.成长路线图&学习规划要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)
4.护网行动资料其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单 6.网络安全岗面试题合集当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
网址:零基础掌握SSH安全登录:从入门到实战全攻略 https://www.yuejiaxmz.com/news/view/509970
相关内容
(2022版)零基础入门网络安全/Web安全,收藏这一篇就够了【网络安全】基础知识详解(非常详细)零基础入门到精通
网络安全防范措施有哪些?零基础入门到精通,收藏这篇就够了
黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
黑客攻防实战从入门到精通【全本
网络安全学习路线全攻略!超详细学习指南,从零基础到精通全覆盖!
2025年网络安全零基础自学全攻略:避开弯路,快速上手!
【网络安全】基础知识详解(非常详细)零基础入门到精通,收藏这一篇就够了
vivo云服务登录攻略:一键掌握便捷生活
揭秘黑客到底有多赚钱?零基础入门到精通,收藏这篇就够了