热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linuxssh远程登录协议

Linux--ssh远程登录协议一.ssh服务1.简介2.优点3.常见的ssh协议4.ssh原理5.轻量级自动化运维工具pssh一.ssh服务1.简介ssh是一种安全通道协议&


Linux--ssh远程登录协议

    • 一.ssh服务
      • 1.简介
      • 2.优点
      • 3.常见的ssh协议
      • 4.ssh原理
      • 5.轻量级自动化运维工具pssh


一.ssh服务


1.简介

ssh是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能,ssh协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,ssh为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。


2.优点


  • 数据传输是加密的,可以防止信息泄露
  • 数据传输是压缩的,可以提高传输速度

3.常见的ssh协议


  • Linux客户端:

    ssh,scp,sftp,slogin

  • windows 客户端:

    xshell, mobaxterm,putty,securecrt,sshsecureshellclient

  • OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。

    Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

    执行"systemctl start sshd"命令即可启动sshd 服务

    sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)

    sshd服务的默认配置文件是/etc/ssh/sshd_config
    ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件


4.ssh原理


  • 公钥传输原理:

    • 客户端发起链接请求
    • 服务端返回自己的公钥,以及一个会话ID
    • 客户端生成秘钥对
    • 客户端用自己的公钥或会话ID,计算出一个值res,并用服务端的公钥加密
    • 客户端发送加密后的值到服务端,服务端用私钥解密,得到res
    • 服务端用解密后的res值异或会话ID,计算出客户端的公钥
    • 最终:双方各自持有三个秘钥,分别为自己的额一对公私钥,以及对方的公钥。之后所有的通讯都会被加密
  • 登录

    • #登录 方法一:
      ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。例:
      [root@ky15 ~]#ssh root@192.168.91.101
      #默认使用22端口 root(登录对方的用户)加IP 地址,首次登录会询问,并要求输入密码
      The authenticity of host '192.168.59.117(192.168.59.107)' can't be established.
      ECDSA key fingerprint is SHA256:o72+YjT+8laQRofsv2dFlcx099aeoI92rloek3ZVrUY.
      ECDSA key fingerprint is MD5:a7:9c:69:35:16:17:21:cb:0e:4f:0d:42:44:16:3a:f7.
      Are you sure you want to continue connecting (yes/no)?
      root@192.168.59.101'
      s password:
      Last login: Tue Sep 28 22:23:52 2021
      [root@ky15-1 ~]##登录方法二
      ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
      -l :-l 选项,指定登录名称。
      -p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)例:
      [root@ky15 ~]#ssh -l root 192.168.59.117
      root@192.168.91.101's password:
      Last login: Tue Sep 28 22:25:40 2021 from 192.168.59.102

  • 服务端配置

    • sshd服务支持登录验证方式

      • 密码验证:以服务器中本地系统用户的登录名称,密码进行验证。这种方式使用最为简单,但从客户机角度来看,正在连接的服务器有可能被假冒,从服务器角度来看,当遭遇到密码暴力破解攻击时防御能力比较弱
      • 密钥对验证:要求提供相匹配的秘钥信息才能通过验证,通常现在客户机中创建一对秘钥文件,然后将公钥文件放到服务器中的指定位置,远程登录时,系统将使用公钥私钥进行加密/解密验证,增强了远程管理的安全性
    • 基于秘钥常用配置项

      #生成密钥文件
      [root@localhost ~]# ssh-keygen -t ecdsa
      (如果设置免密登录,则重新设置,不设置密码,一路回车)
      #将公钥文件导入对方用户的 注意路径
      [root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_ecdsa.pub root@192.168.59.117#登录客户机

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CenvzjR8-1634089568486)(../../AppData/Roaming/Typora/typora-user-images/image-20211012145118037.png)]

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ClTiwfS-1634089568490)(../../AppData/Roaming/Typora/typora-user-images/image-20211012145641379.png)]

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKFJvGO4-1634089568492)(../../AppData/Roaming/Typora/typora-user-images/image-20211012145737592.png)]


5.轻量级自动化运维工具pssh


  • pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh和scp的多个并行工具
  • pdsh:是一个多线程远程shell客户端,可以并行执行多个主机上的命令。可使用几种不同的远程shell服务,包括rsh,kerberosIV和ssh
  • mussh:是一个shell脚本,允许使用命令在多个主机上通过ssh

执行命令,可使用ssh-agent和RSA/DSA秘钥,以减少输入密码


  • pssh命令选项

    • -H:主机字符串,内容格式”[user@]host[:port]”-h file:主机列表文件,内容格式”[user@]host[:port]”-A:手动输入密码模式-i:每个服务器内部处理信息输出-l:登录使用的用户名 -p:并发的线程数【可选】-o:输出的文件目录【可选】-e:错误输出文件【可选】-t:TIMEOUT 超时时间设置,0无限制【可选】-O:SSH的选项-P:打印出服务器返回信息-v:详细模式--version:查看版本

  • pssh配置步骤

    #安装需要配置开发源
    [root@localhost ~]## cd /etc/yum.repos.d
    [root@localhost ~]## vim CentOS-Base.repo#最后一行添加
    [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64https://mirrors.cloud.tencent.com/epel/$releasever/x86_64https://mirrors.huaweicloud.com/epel/$releasever/x86_64https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
    gpgcheck=0#清除缓存
    [root@localhost yum.repos.d]# yum clean all#安装pssh
    [root@localhost yum.repos.d]# yum install pssh -y#生成密钥,一路回车
    [root@localhost yum.repos.d]# ssh-keygen#上传秘钥对
    [root@localhost .ssh]# ssh-copy-id 192.168.59.102
    [root@localhost .ssh]# ssh-copy-id 192.168.59.108#同时管理查看多台客户机的某文件
    [root@localhost .ssh]# pssh -H "192.168.59.102 192.168.59.108" -i cat /etc/passwd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TEI5FQnk-1634089568493)(../../AppData/Roaming/Typora/typora-user-images/image-20211012150937249.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9QO6qXA-1634089568494)(../../AppData/Roaming/Typora/typora-user-images/image-20211012151058687.png)]

[root@ky15-1 yum.repos.d]#yum clean all #清楚缓存
[root@ky15-1 yum.repos.d]#ssh-keygen #enter键然后一路回车
[root@ky15-1 yum.repos.d]#ssh-copy-id 192.168.91.102
[root@ky15-1 yum.repos.d]# ssh-copy-id 192.168.91.105#上传密钥对
[root@ky15-1 yum.repos.d]# pssh -H 192.168.91.102 hostname -i

  • 管理多台,写入一个文件

    [root@ky15-1 yum.repos.d]#vi ww.txt
    [root@ky15-1 yum.repos.d]#pssh -h ww.txt -i hostname


推荐阅读
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 【VMware vSAN 6.6】1.1.企业级超融合基础设施存储方案:提供全面的软硬件集成支持
    ### 摘要VMware vSAN 6.6 提供了一种全面的企业级超融合基础设施(HCI)存储解决方案,支持广泛的软硬件集成。该方案通过在 vSphere Hypervisor 中内置存储功能,实现了高效的数据管理和资源利用。vSAN 6.6 的架构设计包括带有本地存储的服务器,以及优化的存储控制器虚拟系统,有效克服了传统存储系统的局限性,为企业提供了灵活、可靠的存储环境。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 这篇文章 | 夕阳下的防火墙命令全解 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 本文精选了几个结合 Vue 和 Spring Boot 的优质开源项目,适合开发者学习和参考。这些项目不仅涵盖了前后端分离的最佳实践,还提供了丰富的功能示例和详细的文档,有助于提升开发效率和技术水平。项目地址:https://github.com/ 示例链接。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化
    PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化 ... [详细]
  • 本课程首先介绍了全栈开发的最后一公里为何重要,并详细探讨了搭建线上生产环境的关键步骤。随后,通过五个本地Node.js项目的实战演练,逐步展示了从快速构建纯静态简易站点到复杂应用的全过程,涵盖了环境配置、代码优化、性能调优等多方面内容。 ... [详细]
author-avatar
手机用户2502885123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有