首页 > 系统相关 >Linux中的ssh服务

Linux中的ssh服务

时间:2022-10-22 18:45:59浏览次数:47  
标签:公钥 服务 登录 SSH ssh Linux 服务端 客户端

一、ssh服务

1.1、ssh基础

简单说,SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信(比如Telnet、FTP都是明文的方式),一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文的内容都是基于OpenSSH,它是是 SSH 协议的免费开源实现,应用非常广泛.Linux中一般自带的都是OpenSSH,使用ssh -V可以查看系统正在使用的SSH客户端及版本信息,默认的SSH服务端口号为 22。

1.2、ssh的优点

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

二、ssh登录方式

2.1、公钥传输原理

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

2.2、ssh登录

#登录 方法一:
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
 
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,
如果端口不是默认的情况下,需要使用-p 指定端口。 例子: ssh [email protected] #默认使用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)? [email protected]'s password: Last login: Tue Sep 28 22:23:52 2021 #登录方法二 ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port -l :-l 选项,指定登录名称。 -p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

  

2.3、服务端登录

sshd 服务支持两种验证方式:

1.密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解,暴力破解可看之前博客有详细描述系统弱口令检测

2.密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式

echo "123123" | passwd --stdin admin
su - admin
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): 	#指定私钥位置,直接回车使用默认位置
Created directory '/home/admin/.ssh'.		     #生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase): 	#设置私钥的密码
Enter same passphrase again: 					#确认输入
 
ls -l .ssh/id_ecdsa*#id_ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给 SSH 服务器 

标签:公钥,服务,登录,SSH,ssh,Linux,服务端,客户端
From: https://www.cnblogs.com/zhao222/p/16816947.html

相关文章

  • SpringBoot微服务打包Docker镜像
    1.构建sprintboot项目2.打包应用3.编写dockerfileidea下载docker插件(可以高亮)4.构建镜像先把之前镜像都移除dockerrm-f$(dockerps-qa)在Linuxhome目......
  • ping dl.google的服务配置
    在开发android应用时候,需要解决与google配置的问题:除了打开防火墙的配置。接着就是DNS的配置:DNS的配置如下:DNS配置如下:这里并不影响IP的获取:效果如下: ......
  • Linux 系统生产环境配置指南
    1.服务器基本配置1、物理服务器使用RAID1或RAID10磁盘配置,虚拟服务器不受此限制2、物理服务器操作系统使用整体物理硬盘3、虚拟服务器系统盘80G,数据盘按业务需求新增并附加2......
  • 部署YUM仓库及NFS共享服务
    一.YUM概述YUM(YellowdogUpdaterModified)基于RPM包构建的软件更新机制可以自动解决依赖关系所有软件由集中的YUM软件仓库提供主备安装源软件仓库的提供方式FTP......
  • Linux网络服务——PXE网络批量装机+Kickstart无人值守安装
    1系统安装介绍1.1系统装机的三种引导方式1硬盘2光驱3网络1.2系统安装过程加载bootloader加载启动安装菜单加载内核和initrd系统加载根系统运行anaconda......
  • Linux命令
    1、查看磁盘空间:df2、查看CPU使用率:top3、查找文件:find-name4、查看文件:Vim/Cat5、查看进程:PSTOPPStree(以树的方式展示进程间的关系)6、查看端口号:netstatls......
  • 基于StatefulSet部署有状态服务
    一、StatefulSet介绍官网介绍:https://kubernetes.io/zh/docs/concepts/workloads/controllers/statefulset/StatefulSet是用来管理有状态应用的工作负载API对象。St......
  • Linux防火墙的查看及端口的开放
    Linux防火墙的查看及端口的开发1.有关防火墙的基本操作#查看防火墙状态systemctlstatusfirewalld#开启防火墙systemctlstartfirewalld#临时关闭防火墙systemc......
  • web服务器5
    //1导入fsconstfs=require('fs')//2导入path模块constpath=require('path')//3导入http模块consthttp=require('http')//4创建web服务器constserver......
  • 《Unix/Linux系统编程》学习笔记8
    第五章定时器及时钟服务一、知识点归纳(一)硬件定时器  定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以料青确的......