0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入解析SSH协议,轻松实现安全高效的服务器管理

马哥Linux运维 来源:马哥Linux运维 2024-12-19 13:40 111次阅读

什么是ssh

SSH即安全外壳协议(Secure Shell),是一种网络协议,用于在计算机网络上提供安全的远程登录和命令执行功能。SSH通过加密通信通道来保护数据传输,防止敏感信息在传输过程中被窃听或篡改。SSH支持多种身份验证方法,包括密码、公钥和证书等,以确保只有授权用户能够访问系统。除了远程登录,SSH还支持文件传输和端口转发等功能,使得SSH成为一种广泛使用的安全远程管理工具。

ssh原理

1.客户端连接服务器的SSH服务端口(默认是22),发送随机数、支持的加密算法列表、SSH版本号等信息。

2.服务器端SSH服务端程序会选择一个加密算法和HASH算法,并生成自己的公钥,发送给客户端。

3.客户端收到服务器的公钥后,会进行验证,如果公钥合法,客户端会生成会话密钥,用服务器的公钥加密,发送给服务器。

4.服务器收到客户端发来的会话密钥后,用自己的私钥解密,确认会话密钥的合法性。

5.服务器和客户端用会话密钥、HASH算法、加密算法等信息生成一个新的密钥,用于后续数据传输的加密。

6.完成上述过程后,客户端和服务器端就可以开始进行加密的数据传输了。

ssh登录

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p

-l :-l 选项,指定登录名称。
-p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

[root@localhost named]# ssh 192.168.10.20  #若没有修改配置,默认的端口为22
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is SHA256:KtaBKXckd5FGPVjjbVKvTH7FlTeo5/gNAXFWe9UlBlY.
ECDSA key fingerprint is MD55fa473:0a92:7e:3542:8ebb.
Are you sure you want to continue connecting (yes/no)? 
 yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
root@192.168.10.20's password: 
Last failed login: Sun May  5 15:12:57 CST 2024 from 192.168.10.10 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat May  4 17:08:06 2024 from 192.168.10.1
[root@localhost ~]#    ##这是192.168.10.20里

服务器ssh配置

ssh配置文件:/etc/ssh/sshd-config

通过修改配置文件来改变ssh的配置

ListenAddress ip
#监听地址设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。
LoginGraceTime 2m
#用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒
PermitRootLogin yes 
#默认 ubuntu不允许root远程ssh登录
StrictModes yes  
#检查.ssh/文件的所有者,权限等
MaxAuthTries 
#用来设置最大失败尝试登陆次数为6
MaxSessions 10     
#同一个连接最大会话
PubkeyAuthentication yes   
#基于key验证
PermitEmptyPasswords no   
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。
PasswordAuthentication yes  
#基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 
#单位:秒
ClientAliveCountMax 3 
#默认3
UseDNS yes 
#提高速度可改为no   内网改为no  禁用反向解析
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups  #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
#修改默认端口
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#17 行修改自己默认的端口
17 Port 9527

ssh免密登录

通过ssh来生成并发送到指定的IP地址

[root@localhost ~]# ssh-keygen -t rsa#生成ssh的公密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4yEc1dbyJg7OaJoB7HV8em3EpJgrmFV9w0tQcEqcR0Q root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|       o=@E.     |
|      .o+o@ .    |
| .   o.o.O =     |
|  o o.=.+ = o    |
| . * .oBS= o     |
|  + o =o+o+      |
|     * ...       |
|    o            |
|                 |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id -i root@192.168.10.10 #发送到
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.10.10's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.10.10'"
and check to make sure that only the key(s) you wanted were added.

[root@localhost ~]# ssh root@192.168.10.10
Last login: Sun May  5 16:58:06 2024 from 192.168.10.20
[root@localhost ~]# ssh-copy-id -i root@服务端IP#将密钥文件拷贝给服务端,并输入一次服务器端密码

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9151

    浏览量

    85407
  • SSH协议
    +关注

    关注

    0

    文章

    5

    浏览量

    1609

原文标题:新手必看!深入解析SSH协议,轻松实现安全高效的服务器管理

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    ssh连接

    实现,二者互不兼容。SSH2比SSH1在安全性,功能和性能 上提高了很多,所以目前被广泛使用的SSH2。 1.
    发表于 03-28 16:38

    VPS服务器

    站点上。iDNS由三部分组成:域名服务模块,数据库模块,管理模块。软硬件VPS服务器采用操作系统虚拟化技术实现了软件和硬件的隔离, 从而增强了服务器
    发表于 08-01 10:30

    使用 PuTTY 远程登录管理服务器 -- 转载

    ,填入要连接的主机的 IP 地址(这里使用的是之前介绍的在本地创建的练手用的虚拟机,现在 IP 是 192.168.1.14 )。SSH 端口:默认是 22,有时为了安全需要,建议更改服务器
    发表于 07-04 23:11

    如何实现SSH服务器

    你好,有人已经实现SSH(2版)服务器吗?你好吗?SSH只是带有SSL的telnet,还是有其他的东西有一个基本的SSH
    发表于 03-24 10:14

    OpenSSH的SSH协议实现

    OpenSSH 是 SSH 协议的一个实现。一般通过 scp 或 sftp 用于远程登录、备份、远程文件传输等功能。SSH能够完美保障两个网络或系统间数据传输的保密性和完整性。尽管如此
    的头像 发表于 03-12 15:41 8954次阅读
     OpenSSH的<b class='flag-5'>SSH</b><b class='flag-5'>协议</b><b class='flag-5'>实现</b>

    设置面向LSF 和SSH 的远程服务器群设备

    使用 DSE II 在 Quartus Prime 中设置面向 LSF 和SSH 的远程服务器群设备
    的头像 发表于 06-22 04:37 4234次阅读
    设置面向LSF 和<b class='flag-5'>SSH</b> 的远程<b class='flag-5'>服务器</b>群设备

    SSH服务器应用程序免费下载

    和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
    发表于 11-25 08:00 1次下载
    <b class='flag-5'>SSH</b><b class='flag-5'>服务器</b>应用程序免费下载

    以色列政府DNS服务器存在着Open SSH安全漏洞

    安全研究人员Eitan Caspi最近检查了gov.il子域的HTTPS站点是否有安全问题,结果他在以色列政府DNS服务器上发现了一个开放的Open SSH访问。
    发表于 02-12 14:41 938次阅读

    如何更高效实现服务器安全巡检管理

    服务器作为储存数据和承载关键业务系统的主体,是企业IT系统的重要资产。服务器安全一直被认为是整个信息安全领域的最后一道防线。
    发表于 04-03 11:52 949次阅读

    ssh如何上传文件到服务器

    下面恒讯科技小编将跟大家探讨一下ssh如何上传文件到服务器的呢? 一、什么是SSHSSH是一种安全的网络
    的头像 发表于 02-16 17:21 1.6w次阅读

    Linux上保护 SSH 服务器连接的方法

    SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程
    的头像 发表于 08-08 09:55 936次阅读

    在Linux上保护SSH服务器连接的8种方法

    SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程
    的头像 发表于 04-03 09:37 926次阅读

    Linux上建立SSH安全连接的10种方法

    建立 SSH 安全连接的方法是通过 SSH (Secure Shell) 协议建立的加密通道,用于在服务器和客户机之间的
    的头像 发表于 05-29 10:29 6150次阅读

    轻量服务器怎么搭建ssh

    在搭建轻量服务器时,我们通常需要设置SSH登录,以便能够通过SSH客户端远程连接到服务器。下面是一些简单的步骤来帮助您搭建SSH。 第一步:
    的头像 发表于 10-10 09:59 681次阅读

    宝塔面板修改服务器密码怎么设置?

    宝塔面板是一种用于服务器管理的Web面板,允许用户通过图形用户界面轻松管理服务器。如果你想修改服务器
    的头像 发表于 01-24 17:27 1113次阅读