SSH密码和秘钥认证原理

SSH登录方式主要分为两种:

1. 用户名密码验证方式

说明:

  (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户;

  (2) 用户会根据服务器发来的公钥对密码进行加密;

  (3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功。

2. 基于密钥的登录方式

说明:

  (1) 首先在客户端生成一对密钥(ssh-keygen);

  (2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;

  (3) 当客户端再次发送一个连接请求,包括ip、用户名;

  (4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;

  (5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;

  (6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;

  (7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。

原文地址:https://www.cnblogs.com/Tao9/p/8848220.html

时间: 2024-10-10 22:34:34

SSH密码和秘钥认证原理的相关文章

Linux ssh服务开启秘钥和密码认证

问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 PasswordAuthentication yes #允许密码认证 RSAAuthentication yes #秘钥认证 PubkeyAuthentication yes 详细参数列表 [[email protected] ~]# cat /etc/ssh/sshd_config # $OpenBSD: ssh

秘钥认证用户自动控制

先上图 再上代码 #!/bin/bash  #author: QingFeng #qq: 530035210 #blog: http://my.oschina.net/pwd/blog  #自动添加秘钥认证用户 #缺省的配置如下 logdir=/data/log/shell          #日志路径 log=$logdir/shell.log            #日志文件  is_font=1                #终端是否打印日志: 1打印 0不打印  is_log=0   

git乌龟http/https以及ssh clone的秘钥配置永久免密码登录设置

1.安装 安装Git 安装TortoiseGit 乌龟客户端 首先下载安装一个git客户端这个就不多说了基本就是next一直到底 安装后首次新建一个项目project在git服务器上 2.配置 1.注册用户,让git知道你是谁,在于提交代码的时候,知道是哪个家伙提交的!git config --global user.name  "chen1932490299"    用户名是git服务器上配置的谁填谁git config --global user.email "19324

Linux远程ssh免密码,秘钥登录

Linux系统做免密,秘钥登录要注意一下几点: /root/.ssh目录权限为700 SELinux要关闭 /root/.ssh/authorized_keys文件名要写对 文件内容要粘贴对 检查是否按照ssh ssh -V 如果没有安装ssh,使用如下命令安装: yum install -y openssh-clients 主机A: ssh-keygen cat /root/.ssh/id_rsa.pub scp /root/.ssh/id_rsa.pub [email protected]主

关于linux中的 秘钥认证 ,最清晰解读

所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上.登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来.远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求输入密码,这和之前的ssh账号密码也没有直接关系. 也就是说,如果你已经利用A可以远程免密登录到B,如果 你现在想让C也能能免密登录到B,最简单的方法就是,把A的私钥拷贝到 C就行,然后就可以直接进行免密进行 登录了. 可参考 原文地址:htt

SFTP秘钥认证

到当前用户目录下 cd ~ /home/[user] 找到 .ssh目录 cd .ssh ssh-keygen -t rsa   执行创建密钥对命令 Generating public/private rsa key pair. Please be patient....   Key generation may take a few minutes Enter file in which to save the key (/home/ap/appnms/.ssh/id_rsa): # 按回车保

ssh使用秘钥免密码登录

使用ssh远程连接服务器,有两种身份校验方式:账号密码和秘钥.使用秘钥的方式理论上更加安全,而且免去了输入密码的步骤,使用起来更方便(尤其对于sftp,scp等). ssh秘钥的生成和使用,网上很多教程,感觉不太完整,这里自己总结一下. 秘钥由谁生成这是比较容易搞乱的一点.这里以A.B两台服务器为例,假设A需要ssh登录B,那么应该由那台服务器生成秘钥呢.可能有人以为像门锁一样,主人家负责装锁配钥匙,把钥匙交给要开门的人使用,所以由被访问的B服务器生成秘钥. 事实恰恰相反,秘钥由访问请求方A服务

设置SSH仅秘钥登录,禁止密码登录

/etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin # T

ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算法).本文就以diffie-hellman-group-exchange-sha256为例,详尽地讲解整个完整的秘钥交换过程. 笔者在RFC上和网上看了很久,也只是做了一个大致了解,对实现的帮助不大.实际在实现过程中,有太多的细节需要注意,在很多细节的分歧中,需要自己抱着勇气去测试.(原谅我不看op