0


Linux网络服务三:SSH 远程连接

文章目录

1.SSH概述

1.1什么是SSH

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

1.2ssh的特点

安全性: 数据传输是加密的,可以防止信息泄漏。

身份验证:防止未经授权的用户访问远程系统。

远程管理:可通过SSH协议登录远程服务器并执行命令,无需直接物理访问设备。

端口转发:SSH支持 端口转发功能,可以安全地传输其他协议和应用程序。

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

SSH具有强大的安全性、身份验证和远程管理功能,使得它成为远程访问和管理计算机系统的首选协议

1.3 OpenSSH

1.3.1 概念

OpenSSH是通过SSH协议实现的一套用于远程登录和文件传输的工具,包括SSH客户端(SSH)和SSH服务器(sshd)。

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

1.3.2所含软件包

服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh.config

1.4ssh远程连接原理

在这里插入图片描述

在这里插入图片描述

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

3.ssh登录方式

3.1第一种方式

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p 
### -p 指定端口号

ssh 192.168.67.101

在这里插入图片描述

3.2第二种方式

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址]
###-l 指定登录名

ssh -l root 192.168.67.101

在这里插入图片描述

3.3第三种方式:远程控制

ssh [远程登录主机名]  [命令]

ssh 192.168.67.101 ls

在这里插入图片描述

4.服务端配置

[root@ky15-1 ~]# vim /etc/ssh/sshd_config 
17  Port    22   
#生产建议修改   

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
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

5.免密登录

5.1远程登录的方式

5.1.1基于密码登录

原理:

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户
  2. 用户会根据服务器发来的公钥对密码进行加密
  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功
5.1.2 基于密钥登录

在这里插入图片描述

  1. 首先在客户端生成一对密钥(ssh-keygen)
  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端
  3. 当客户端再次发送一个连接请求,包括ip、用户名
  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc
  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
示例:
1.生成密钥
ssh-keygen

在这里插入图片描述
在这里插入图片描述

2.将公钥文件导入对方用户

在这里插入图片描述

3.查看是否能够免密登录

在这里插入图片描述
成功

标签: linux ssh 运维

本文转载自: https://blog.csdn.net/m0_74170357/article/details/132152433
版权归原作者 想当大佬的一天 所有, 如有侵权,请联系我们删除。

“Linux网络服务三:SSH 远程连接”的评论:

还没有评论