Linux网路服务之SSH服务

一.SSH服务

1 SSH基础

1.1什么是SSH服务器?

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;

SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;

SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

SSH客户端<--------------网络---------------->SSH服务端
 

1.2SSH优点

  • 数据传输是加密的,可以防止信息泄漏

  • 数据传输是压缩的,可以提高传输速度

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服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件
 

  1. 服务名称:sshd

  2. 服务端主程序:/usr/sbin/sshd

  3. 服务端配置文件:/etc/ssh/sshd_config

  4. 客户端配置文件:/etc/ssh/ssh_configan>

2.ssh原理

2.1公钥传输原理

客户端发起链接请求

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

客户端生成密钥对

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

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

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

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

会被加密
 

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

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.生成密钥文件

 

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

 

3登录客户机 

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 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值