论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
中间件
›
中间件
›
SSH远程登录与控制
SSH远程登录与控制
梦应逍遥
论坛元老
|
2024-8-11 23:07:22
|
显示全部楼层
|
阅读模式
楼主
主题
1417
|
帖子
1417
|
积分
4251
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
目录
一 什么是shh服务器
ssh优点
作用
SSH的 软件
公钥首次连接原理
ssh远程登录
二 shh命令 远程连接
直接连接先输入ssh IP
连接指定用户
指定端口号
跳板登录
此功能马传斌继续研究
三远程登陆执行操纵命令
修改服务端配置文件
编辑 白名单,只能登录本机的mcb@用户
禁止用户登录
四 SSH服务的最佳实践
五 openSSH 服务器配置文件
ssh配置文件信息
存放ssh服务端的配置文件 /etc/ssh/sshd_config
编辑 六 使用密钥对免交互验证登录
1创建密钥
2传送到远程主
3登录验证
面交互验证
一 什么是ssh服务器
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速率。
SSH客户端<--------------网络---------------->SSH服务端
1 协议范例
SSH(Secure Shell):SSH是一种加密网络协议,用于通过安全通道在不安全网络上进行远程访问和管理。它提供了加密的通信会话,包括远程登录和执行命令,以及传输文件等功能
Telnet:固然不安全,但仍然被用于远程登录到服务器或设备,通常用于简单的文本交互
RDP(Remote Desktop Protocol):主要用于Windows系统,允许用户通过图形界面远程访问另一台计算机。
VNC(Virtual Network Computing):允许用户远程控制另一台计算机的图形界面。它是跨平台的远程桌面协议。
X11:用于在UNIX和Linux系统上进行图形界面的远程访问。
ICA(Independent Computing Architecture):由Citrix Systems开发,用于提供应用步伐和桌面假造化服务
2 ssh协议优点
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以进步传输速率
加密通信
:SSH协议通过加密技术,确保通信过程中的数据传输是安全的,防止数据被窃听或窜改
远程登录:
用户可以使用SSH协议远程登录到其他计算机或服务器,以便进行命令行操纵、文件管理等任务
加密身份验证
:SSH协议支持使用公钥和私钥对进行身份验证,这种方式比传统的基于密码的身份验证更加安全
端口转发
:SSH协议支持端口转发,可以通过安全的通道在两个计算机之间建立安全的连接
远程执行命令
:SSH允许用户在远程主机上执行命令,这对于自动化脚本和远程管理非常有用
文件传输
:SSH协议还支持安全的文件传输,可以在客户端和服务器之间进行安全的文件传输和管理
作用
sshd 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
3 SSH的 软件
SSH 客户端: xshell putty secureCRT MobaXterm finalshell
SSH 服务端:openSSH (Centos 7 默认安装)
4 有关系的步伐
OpenSSH:OpenSSH 是 SSH 协议的免费开源实现,包括服务器端和客户端步伐。它支持加密和身份验证功能,被广泛用于Linux和类Unix系统上
PuTTY:PuTTY 是一个流行的免费的SSH和Telnet客户端步伐,可在Windows平台上使用。它提供了SSH连接所需的工具和功能
WinSCP:WinSCP 是一个免费的SFTP、SCP和FTP客户端步伐,用于在Windows平台上与远程计算机进行安全文件传输。它支持SSH协议,提供了用户友爱的界面
SecureCRT:SecureCRT 是一个商业化的SSH客户端步伐,提供了强大的功能和定制选项,适用于Windows、Mac和Linux操纵系统
5 公钥传输原理
①客户端发起连接请求
②服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
③客户端生成密钥对
④客户端用自己的公钥或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤客户端发送加密后的值到服务端,服务端用密钥解密,得到Res
⑥服务端用解密后的Res大概是会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
⑦终极:双方各持有三个密钥,分别为自己的一对公钥、私钥、以及对方的公钥,之后的全部的通讯都会被加密。
6 加密通讯原理
详细阐释:
首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保存私钥,假如要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下
7 ssh远程登录文件
每次使用sshd登录到其他主机,双方都会生成一个文件known_hosts把对方主机的公钥在.ssh/known_hosts文件里。
8 如何确定此台机器就是我要连的机器?
ssh [选项] mcb@192.168.11.9 #指定登任命户、目标主机地点作为参数
ssh -p 20 mcb@192.168.11.9 #-p为指定端口
二 ssh命令 远程连接
①直接连接:先输入ssh IP
第一次连接服务端机器会询问是否要验证公钥,同意就会自动获取服务端公钥
验证是否连接精确服务机,可查看服务端的公钥
②连接指定用户
① ssh 用户名@IP地点
②ssh -l 用户名 IP地点
③指定端口号
在 /etc/ssh/sshd_config文件修改端口号
sshd服务的默认端口号是 22,假如不是此端口,需要 -p 来指定端口
[root@localhost ~]#vim /etc/ssh/sshd_config
[root@localhost ~]#systemctl restart sshd
在另一台假造机验证,使用客户机就需要指定端口号
跳板登录
提供了一种安全的方式管理和连接位于内部网络中的主机,同时限定了对内部网络的直接访问
#在目标服务端主机上模拟防火墙拒绝客户端连接,客户端使用跳板连接到目标主机上
[root@localhost .ssh]#iptables -A INPUT -s 192.168.11.5-j REJECT
[root@localhost ~]#ssh -t 192.168.11.9 ssh 192.168.11.5
复制代码
此功能马传斌继续研究
三 远程登录直接执行操纵命令
#ssh 192.168.11.9 ifconfig
白名单:
默认拒绝全部,只有白名单上允许的人才可以访问
黑名单:
默认允许全部,只有黑名单上的用户让你不允许访问
留意 实验关闭防火墙 防护 黑白不能同时启用
修改服务端配置文件
root@localhost ~]#vim /etc/ssh/sshd_config
① 白名单,只能登录本机的mcb@用户
别的用户无法登录
③禁止用户登录 ,此实验要反复去做
借鉴他人
[root@localhost ssh]#vim /etc/ssh/sshd_config
#开启38 行 并改为 no,默认注释并写的yes
38 PermitRootLogin no
#注意虽然阻止了root 但是普通用户可以使用su
[root@localhost1 ~]#ssh zhangsan@192.168.91.100 -p 9527
zhangsan@192.168.91.100's password:
Last login: Fri Aug 27 16:50:35 2021
[zhangsan@localhost2 ~]$
[zhangsan@localhost2 ~]$ su root
密码:
[root@localhost2 zhangsan]#
修改 pam认证模块
[root@localhost ssh]#vim /etc/pam.d/su
#开启第6行,默认注释
6 auth required pam_wheel.so use_uid
复制代码
# vim /etc/ssh/sshd_config
38 #PermitRootLogin yes 把yes该为no
Xshell就登陆不上
修改pam认证模块,只允许wheel组用户可以使用 su
[root@localhost ~]# vim /etc/pam.d/su
6 #auth required pam_wheel.so use_uid
默认是解释掉,要让6行开启
操纵如下:
[root@localhost ~]# vim /etc/pam.d/su
太遗憾了,过程忘了
四 SSH服务的最佳实践
①建议使用非默认端口22
vim /etc/ssh/sshd_config
#找到以下两个配置项:
port 123 #设置特定的ssh服务端口号
复制代码
②禁止使用 protocol version 1
因为SSH协议版本一存在多个已知的安全漏洞,其使用的加密算法和密钥交换机制相对较弱,易受到中心人攻击等威胁
SSH 协议版本二已经成为现代标准,并且得到广泛支持,绝大多数 SSH 客户端和服务器都默认使用协议版本二,而且许多安全性工具也不再支持协议版本一
③限定可登任命户(白名单)
④设定空闲会话超时时长
vim /etc/ssh/sshd_config #找到以下两个配置项:
ClientAliveInterval 0
ClientAliveCountMax 3
复制代码
ClientAliveInterval:表现服务器向客户端发送空闲会话确认消息的时间隔断,单位为秒。默认值为0,表现不发送确认消息。将其设置为一个正整数,表现每隔多长时间向客户端发送一次确认消息。
ClientAliveCountMax:表现服务器向客户端发送确认消息后,客户端没有相应的最大次数。默认值为3,表现假如服务器连续发送3次确认消息后,客户端仍未相应,则以为客户端已经断开连接。将其设置为一个正整数,表现服务器最多发送多少次确认消息后,以为客户端已经断开连接
⑤利用防火墙设置SSH访问策略
#利用防火墙禁止特定IP地址:172.16.12.10访问
iptables -A INPUT -s 172.16.12.10 -j REJECT
复制代码
⑥仅监听特定的IP地点、公网、内网
vim /etc/ssh/sshd_config #找到以下三个配置项:
ClientAliveInterval 300
ClientAliveCountMax 2
ListenAddress 192.168.11.10
复制代码
ClientAliveInterval:表现SSH服务器将向客户端发送空闲会话查抄的时间隔断(以秒为单位),默认值为0,表现禁用此功能
ClientAliveCountMax:表现SSH服务器将向客户端发送空闲会话查抄的最大次数,假如达到此次数后仍未收到客户端的相应,则会话将被终止,默认值为3
ListenAddress:监听特定的IP地点的SSH连接
⑦基于口令认证时,使用强密码策略
比如:tr -cd [a-zA-Z0-9] < /dev/random | head -c 12 | xargs
#设定12位的随机密码
⑧使用基于密钥的认知
⑨禁止使用空密码
vim /etc/ssh/sshd_config
#找到以下一个配置项:
PermitEmptyPasswords no #禁止使用空密码
复制代码
⑩禁止root用户直接登录
11 限定ssh的访问频率和并发在线数
vim /etc/ssh/sshd_config #找到以下一个配置项:
MaxStartups 10 #最多允许10个并发连接,如果超过这个数量,会拒绝新的连接
复制代码
使用PAM模块:通过Pluggable Authentication Modules (PAM) 可以实现更复杂的控制,
例如限定用户的并发登录数
使用防火墙:你也可以使用防火墙软件如iptables来限定从特定IP地点发起的并发SSH连接数
12 经常分析日记分离
独立sshd服务日记文件:默认sshd服务日记在/var/log/secure下,可通过rsyslog步伐将sshd服务日记文件独立出来放到特定的文件夹中,方便查看和管理。
(具体操纵请查看《Linux文件系统与日记分析》博客)
使用日记分析工具:可以使用工具如grep、awk、sed等来分析SSH日记文件。这些工具可以资助搜刮特定的关键字、过滤信息、提取有用的数据等
设置日记轮转:为了避免日记文件过大,可以配置日记轮转。通过日记轮转,旧的日记文件会被重定名并压缩,同时创建新的日记文件。可以使用logrotate工具来实现日记轮转,并在其配置文件中指定SSH日记文件的处理方式(具体操纵请查看《Linux文件系统与日记分析》博客)
五 openSSH 服务器配置文件
openSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操纵系统
执行“systemctl start sshd”命令即可启动sshd服务,默认端口使用的22端口
服务名称:sshd
服务端主步伐:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
1 ssh配置文件信息
在linux中实现ssh,是通过opsnSSH的sshd服务提供的
2 存放ssh服务端的配置文件
/etc/ssh/sshd_config
[root@localhost ~]#vim /etc/ssh/sshd_config
六 密钥对免交互 验证登录
有密码又无需输入密码
1 创建密钥,生成rsa算法密钥
2 传送到远程主机
3 登录验证
七 免交互登录
客户端先输入 ssh-agent bash 将这个命令交给 bash 去管理
再输入 ssh-add 是将用户的私钥添加到运行中的 ssh-agent 中,如许在后续的SSH连接过程中,就不需要每次都手动输入私钥的密码了。一旦私钥被添加到ssh-agent 中,它会暂时保存解密后的私钥以供后续使用
[root@localhost .ssh]# ssh-agent bash #把sh-agent交给进程管理
[root@localhost .ssh]# ssh-add #把密码交给sh-agent
Enter passphrase for /root/.ssh/id_rsa: #输入密钥文件密码
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[root@localhost .ssh]# ssh 192.168.11.6 #无需密码即可登录,重启后失效
Last login: Sun Jan 21 14:06:03 2024 from 192.168.11.9
注:机器重启就会失效
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
梦应逍遥
论坛元老
这个人很懒什么都没写!
楼主热帖
如何将github copilot当gpt4用
分布式机器学习在云盘算环境中的应用 ...
【嵌入式】嵌入式系统稳定性建立:linu ...
MySQL 8.0 修改 Root 密码
云计算底子-存储虚拟化(笃信服aSAN分 ...
云计算稽核 - 分析电子银行需求采用微 ...
Map&Set之相关概念
HarmonyOS应用开辟高级认证考试答案三- ...
如何使用web文件管理器Net2FTP搭建个人 ...
iOS状态栏自界说神器——StatusMagic安 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
开源技术
Java
前端开发
人工智能
快速回复
返回顶部
返回列表