ssh网络协议(服务名sshd,端口22)

目录

前言

配置文件(/etc/ssh/sshd_config)

配置文件内容

自己可以添加的设置:

注意!:

ssh连接登录演示

scp文件传输

登录验证方式

密码验证登录

秘钥验证登录

配置ssh密钥对验证登录

[生成密钥对(ssh-keygen -t rsa)](#生成密钥对(ssh-keygen -t rsa))



前言

SSH网络协议是一种用于安全远程登录 和其他安全网络服务的协议,通过加密和认证机制在不安全的网络环境中提供安全的数据传输通道。SSH支持多种认证方式,包括密码认证和公钥认证。密码认证相对简单,但每次登录都需要输入密码;而公钥认证则可以实现免密登录,安全性更高,广泛应用于各种场合。ssh服务默认端口号为22,服务名称是sshd


配置文件(/etc/ssh/sshd_config)

配置文件内容

打开配置文件**/etc/ssh/sshd_config** 后可以看到一些比较重要的设置:

Port 22 端口号为22

LoginGraceTime 2m 登录验证时间为2m

PermitRootLogin no 禁止root用户登录

MaxAuthTries 3 最大登录尝试次数为3次

MaxSessions 10 最大连接数为10

PermitEmptyPasswords no 禁止空密码用户登录

PasswordAuthentication no 禁用密码验证登录

PubkeyAuthentication yes 启用秘钥验证登录


自己可以添加的设置:

AllowUsers s1 s2 s3@192.10.10.5 只允许用户s1、s2和使用IP192.10.10.5的s3用户连接登录

DenyUsers s5 s6@192.87.87.87 禁止用户s5和使用IP192.87.87.87的用户s6连接登录

AllowUsers 和 DenyUsers不能同时使用!!!


注意!:

在使用ssh前,服务机需要启用sshd服务 systemctl start sshd

关闭宽容模式 setenforce 0

关闭防火墙 systemctl stop firewalld

每次修改配置文件后都要重启服务 systemctl restart sshd


ssh连接登录演示

(演示:kali做客户机、centos7做服务机)

在kali中登录centos的stu1用户 :ssh stu1@192.168.189.111

此时可以操作stu1用户的目录和文件,切换到其他目录,修改重要文件。

可以通过修改服务机sshd服务的配置文件限制客户机权限。

192.168.189.111是服务机的IP地址

exit 退出登录:


如果服务机修改了端口号,比如·改为了666,则命令应该是:

ssh -p 666 stu1@192.168.189.111


在window上也是一样的操作


scp文件传输

scp命令是一个基于SSH协议的实用程序,用于在本地和远程主机之间安全地复制文件和目录。scp命令通过加密传输数据,确保数据在不安全的网络环境中的安全性和完整性。它不仅支持文件的上传和下载,还能复制整个目录,并保留文件属性。

将远程主机ceshi目录下的qq.txt文件复制到本机当前目录下的benji目录下:

scp root@192.168.100.2:/ceshi/qq.txt ./benji

将本地etc目录下的passwd文件复制到远程主机的xinxi目录下

scp /etc/shadow root@192.168.100.2:/xinxi

如果要复制整个目录包括目录下的所有文件,可以在scp后面加上-r


登录验证方式

密码验证登录

密码验证登录,通过使用自动生成的公钥-私钥对,来加密网络连接,然后使用密码进行认证。具体过程如下:客户端发送登录请求并接收服务器的公钥;输入密码后,密码被公钥加密并传输到服务器;服务器使用私钥解密并验证密码是否正确。如果验证成功,则建立连接。这种方法相对简单,但安全性较低,因为密码可能在网络上被截获,且易受到暴力破解攻击。

秘钥验证登录

密钥验证登录更为安全,它通过一对公钥和私钥来进行身份认证。客户端生成密钥对,将公钥存储在服务器上,私钥存储在客户机;连接时,服务器生成随机字符串并用客户端公钥加密,客户端使用私钥解密后返回结果,服务器比对成功后即允许登录。这种方式避免了密码在网络上的传输,从而显著提高了安全性。然而,配置过程较为复杂。当密码验证与密钥对验证都启用时,服务器会优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用, 启用密钥对验证方式。


配置ssh密钥对验证登录

生成密钥对(ssh-keygen -t rsa)

在客户端生成密钥对,可以看到私钥和秘钥的存储位置为:/root/.ssh/目录下面,即当前用户的

进入到用户家目录,查询所有文件,即可看到.ssh目录:

私钥默认生成在当前用户家目录中,可以不管;

需要将公钥id_rsa.pub改名为authorized_keys,然后上传到服务器(想要登录的用户的家目录的.ssh目录下):

mv id_rsa.pub authorized_keys

scp ./authorized_keys root@192.168.100.2:~/.ssh

这时,公钥authorized_keys在服务端的家目录的.ssh文件夹里

私钥id_rsa在客户端本机的家目录的.ssh文件夹里

关闭密码验证登录,打开秘钥验证登录,就可以用秘钥登录远程主机了:

可以看到,在秘钥验证登录时,可以直接登录进去。

秘钥验证登录相对于密码验证登陆来说,既安全,又快捷方便。


在windows中也是一样的,只需要将公钥上传到windows即可,使用finalshell连接linux:



相关推荐
发光小北26 分钟前
关于六通道串口服务器详细讲解
运维·硬件工程
ICT系统集成阿祥36 分钟前
科普篇 | “机架、塔式、刀片”三类服务器对比
运维·服务器
无空念1 小时前
Linux - 五种常见I/O模型
linux·运维·服务器
贾贾20231 小时前
主站集中式和分布式的配电自动化系统区别在哪里?各适用于什么场所?一文详解
运维·分布式·考研·自动化·生活·能源·制造
思码逸研发效能1 小时前
在 DevOps 实践中,如何构建自动化的持续集成和持续交付(CI/CD)管道,以提高开发和测试效率?
运维·人工智能·ci/cd·自动化·研发效能·devops·效能度量
Gemma's diary2 小时前
Ubuntu开发中的问题
linux·运维·ubuntu
徊忆羽菲2 小时前
Linux下php8安装phpredis扩展的方法
linux·运维·服务器
PH_modest3 小时前
【Linux跬步积累】——thread封装
linux·运维·服务器
秋说3 小时前
本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程
linux·运维·ubuntu
晚秋贰拾伍3 小时前
设计模式的艺术-命令模式
运维·设计模式·运维开发·命令模式·开闭原则