零基础掌握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等。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值