SSH(安全协议外壳)介绍及Linux SSH免密登录

2023-12-16 08:58

本文主要是介绍SSH(安全协议外壳)介绍及Linux SSH免密登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SSH(安全协议外壳)介绍及Linux SSH免密登录

SSH(安全外壳协议)

  SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
  从客户端来看,有两种验证方式:基于密码、基于密钥。

用户名密码验证方式:

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

基于密钥的登录方式:

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

 

 SSH免密登录便是基于秘钥进行登录,从而免去每次连接其他服务器的时候输入密码的情况。

 

在三个虚拟机(node-01,node-02,node-03)的基础上进行免密登录的设置:

1,在node-02上生成秘钥,并保存到文件中(使用ssh-keygen后一直回车到私钥和公钥生成):

ssh-keygen 

2,使用ssh-copy-id把公钥发送到三台机器中:(前提是三台机器做了域名映射,不然不能写node-01... 需要写机器的ip)

ssh-copy-id node-01ssh-copy-id node-02ssh-copy-id node-03

 

 

由于是在node-02上生成的秘钥,并保存到node-02上,所以现在从node-02上登录其他两台机器就可以实现免密登录了:

可以看到我们可以在node-02上直接连接node-03了。

 

posted @ 2016-04-22 20:14 青衫仗剑 阅读( ...) 评论( ...) 编辑 收藏

这篇关于SSH(安全协议外壳)介绍及Linux SSH免密登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499912

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文