栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

SSH远程服务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSH远程服务

目录
  • 一、SSH服务
    • 1.1 SSH基础
      • 1.1.1什么是SSH服务器?
      • 1.1.2 SSH的优点
      • 1.1.3常见的ssh协议
    • 1.2ssh原理
      • 1.2.1公钥传输原理
      • 1.2.2 ssh加密通讯原理
      • 1.2.2登录
      • 1.2.3服务端配置
    • 1.3轻量级自动化运维工具pssh

一、SSH服务 1.1 SSH基础 1.1.1什么是SSH服务器?
  • SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;
  • SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;
  • SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
1.1.2 SSH的优点
  • 数据传输是加密的,可以防止信息泄漏
  • 数据传输是压缩的,可以提高传输速度
1.1.3常见的ssh协议

客户端: Linux Client: ssh, scp, sftp,slogin Windows Client: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服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_configan>
1.2ssh原理 1.2.1公钥传输原理
  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都

    会被加密

1.2.2 ssh加密通讯原理

(1)对称加密
1、概念
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2、常用算法
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点
1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

(2)非对称加密
1、概念
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法
RSA(RSA algorithm):目前使用最广泛的算法
DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA
仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
ECC(Elliptic curve cryptography,椭圆曲线加密算法)
ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA
的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理
首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

5、优缺点
相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

1.2.2登录
#登录 方法一:
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
1.2.3服务端配置

1.sshd服务支持登录验证方式

  • 密码验证:
    以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒,从服务器角度来看,当遭遇密码暴力破解攻击时防御能力比较弱。
  • 密钥对验证:
    要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,增强了远程管理的安全性。
    • 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密;
    • 不能根据一个密码来推算出另一个密钥;
    • 公钥对外公开,私钥只有私钥的持有人才知道。
      2.基于密钥常用配置项
#生成密钥文件
[root@localhost ~]# ssh-keygen -t ecdsa
(如果设置免密登录,则重新设置,不设置密码,一路回车)
#将公钥文件导入对方用户的 注意路径
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_ecdsa.pub root@192.168.59.117
 
#登录客户机

1.生成密钥文件

[root@localhost ~]# ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:gzl0K6d+RkHeNUiGjS3uvvi3GwLxaf3DXDmgVlUmIIQ root@localhost.localdomain
The key's randomart image is:
+---[ECDSA 256]---+
|         O=...o.o|
|        E.+.o. o |
|      o+.o .o.   |
|     . *++.o . . |
|      *.S.+   +  |
|       Boo + . . |
|      .o. . =    |
|     . .+... .   |
|      o+oooo     |
+----[SHA256]-----+
[root@localhost ~]# ^C
[root@localhost ~]# 

生成文件

[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# ls
id_ecdsa  id_ecdsa.pub
[root@localhost .ssh]# 

2.将公钥文件导入对方用户的 注意路径

3.登录客户机

1.3轻量级自动化运维工具pssh
  • EPEL源中提供了多个自动化运维工具 pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh

    和scp的多个并行工具,项目:http://code.google.com/p/parallel-ssh/

  • pdsh:Parallel remote shell program,是一个多线程远程shell客户端,可以并行执行多个远程主机上的命令。
    可使用几种不同的远程shell服务,包括rsh,Kerberos IV和ssh,项目: https://p
    dsh.googlecode.com/

  • mussh:Multihost SSH wrapper,是一个shell脚本,允许使用命令在多个主机上通过ssh执行命

    令。 可使用ssh-agent和RSA/DSA密钥,以减少输入密码,项目:http://www.sourceforge.net/pr

ojects/mussh

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_64
        https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
        https://mirrors.huaweicloud.com/epel/$releasever/x86_64
        https://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 
 







转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313173.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号