Linux ssh远程登录

1、ssh概念

ssh:一种安全通道协议
 功能:1.实现字符界面远程登录
    2.远程复制  
    3.ssh协议是对通信对方的数据传输进行加密出来,包括用户口令(安全性)
    4.客户端22端口,服务器端口22

1.1SSH的优点

  • 安全性: 数据传输是加密的,可以防止信息泄漏。
  • 身份验证:防止未经授权的用户访问远程系统。
  • 远程管理:可通过SSH协议登录远程服务器并执行命令,无需直接物理访问设备。
  • 端口转发:SSH支持 端口转发功能,可以安全地传输其他协议和应用程序。
  • 传输速度: 数据传输是压缩的,可以提高传输速度。
  • SSH具有强大的安全性、身份验证和远程管理功能,使得它成为远程访问和管理计算机系统的首选协议。

1.2配置文件

ssh配置文件在/etc/ssh
客户端配置文件/etc/ssh_config
服务器配置文件/etc/sshd_config 

1.3ssh组成结构

1.传输层协议(ssh-trans)
 (1)服务器认证,保密性以及完整性,压缩功能  
 (2)一般运行在tcp/ip连接上,也可以用在其他可靠流
 (3)ssh-trans提供加密技术,密码主机认证,数据完整性保护,数据压缩
 (4)密码主机认证,基于主机,不能进行用户认证
2.用户认证协议(ssh_userauth)
 (1)向服务器提供客户端用户鉴别功能
  (2)运行在ssh_trans之上
  (3)开始执行用户认证,从底层协议接受会话标识,认证私钥所有权
(boot --认证用户是否存在--输入密码--认证密码是否相符--登录成功)
3.连接协议(ssh_connect)
 (1)多个加密隧道分为逻辑通道
 (2)运行在用户认证上,提供交互式登录会话,远程命令执行,转发tcp/ip连接 

2、SSH原理

在这里插入图片描述

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

3、SSH登录方式

3.1登录 方法一:

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
命令                                          端口号    

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

[root@localhost ~]#ssh root@192.168.190.254
#默认使用22端口   root(登录对方的用户)加IP 地址,首次登录会询问,并要求输入密码

在这里插入图片描述

3.2登录方法二

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

在这里插入图片描述

3.3 方式三:跳板连接

跳板连接用于在不直接暴露目标主机的情况下进行安全访问。
通过跳板连接,用户可以首先连接到中间设备,然后再通过中间设备连接到目标主机。
中间设备不一定是跳板机,只需要安装ssh服务就可以。

3.3.1跳板连接使用场景

远程服务器管理:跳板连接常用于管理和控制远程服务器。通过跳板机,可以安全地登录和执行命令,而无需直接暴露目标服务器的访问端口。
内部网络隔离:跳板连接可用于将外部网络和内部网络隔离,提供一个安全的访问通道,外部用户必须通过身份验证和授权才能访问内部网络资源。
多层级安全访问:通过跳板机,可以从一个层级跳转到另一个层级,确保访问的安全性和可管理性。
SSH端口转发:跳板连接还可以用于SSH端口转发,提供访问内部受限资源的能力。

3.3.2具体应用

#本机地址为192.168.192.254
iptables -A INPUT -s 192.168.190.100 -j REJECT #拒绝来自此IP的所有访问

在这里插入图片描述

  • 方式一
ssh -t 192.168.190.200 ssh -t 192.168.190.254  //把192.168.190.200作为跳板机

在这里插入图片描述

  • 方式二
ssh -J IP1,IP2...  目标IP
#IP1 IP2为中间设备的IP地址
#举例
ssh -J 192.168.190.200 192.168.190.254

在这里插入图片描述

4、服务端配置

[root@localhost ~]# vim /etc/ssh/sshd_config   //服务端配置
#生产建议修改自己默认的端口

#修改后 远程连接需要加 -p选项
ssh 192.168.190.100 -p 9527 //不加P会莫认使用原端口

在这里插入图片描述

LoginGraceTime 2m
#用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒
PermitRootLogin yes 
#默认 ubuntu不允许root远程ssh登录
StrictModes yes   
#检查.ssh/文件的所有者,权限等
MaxAuthTries 
#用来设置最大失败尝试登陆次数为6
MaxSessions  10         
#同一个连接最大会话
PubkeyAuthentication yes     
#基于key验证
PermitEmptyPasswords no      
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。

在这里插入图片描述

5、免密登录

正常情况下访问别的主机需要输入密码才能连接

在这里插入图片描述

在客户端生成密钥文件 ssh-keygen

在这里插入图片描述

最后会生成两个文件 
cd /root/.ssh
ls 
.pub为密钥文件

在这里插入图片描述

ssh-copy-id -i id_rsa.pub 192.168.190.200
#复制公钥文件
root@192.168.190.200's password: //输入密码确认执行命令
Number of key(s) added: 1   //拷贝成功

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值