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 [email protected] 只允许用户s1、s2和使用IP192.10.10.5的s3用户连接登录

DenyUsers s5 [email protected] 禁止用户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 [email protected]

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

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

192.168.189.111是服务机的IP地址

exit 退出登录:


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

ssh -p 666 [email protected]


在window上也是一样的操作


scp文件传输

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

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

scp [email protected]:/ceshi/qq.txt ./benji

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

scp /etc/shadow [email protected]:/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 [email protected]:~/.ssh

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

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

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

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

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


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



相关推荐
努力学习的小廉3 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
秃头菜狗3 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
利刃大大3 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
jiunian_cn4 小时前
【Linux】centos软件安装
linux·运维·centos
藥瓿亭4 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_809798325 小时前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣5 小时前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
玩转4G物联网5 小时前
零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
服务器·网络·物联网·网络协议·tcp/ip·http·fs100p
dmy5 小时前
n8n内网快速部署
运维·人工智能·程序员
光芒Shine5 小时前
【物联网-ModBus-ASCII】
物联网·网络协议