ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ssh密钥原理

2022-07-22 09:00:09  阅读:161  来源: 互联网

标签:公钥 私钥 ssh 服务器 原理 客户端 id 密钥


最近使用jenkins远程拷贝的免密访问遇到不少问题,其中主要原因还是对ssh的加密解密不太熟悉,于是便有了这篇文章。

首先我们来了解什么是公钥和私钥。

私钥

服务器上经过rsa算法生成的私钥。与公钥是一对的密钥对,用于连接其他服务器用。

公钥

服务器上经过rsa算法生成的公钥。与私钥是一对的密钥对,用于连接其他服务器用。
将主机A的id_rsa.pub内容copy到B主机的authorized_keys文件中,这样A主机就能不通过密码连接到B主机。

说明:

● 每个用户都有一对私钥和公钥。
● 私钥用来进行解密和签名,是给自己用的。
● 公钥由本人公开,用于加密和验证签名,是给别人用的。
● 当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。
● 当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他看到。即安全传输。

.ssh目录介绍

目录~/.ssh/是用来存储SSH客户端和服务器一些配置文件的位置,这些文件包括:

  • authorized_keys,SSH服务器默认的公钥认证文件,服务器通过该文件配置可以使用该用户认证的用户证书。SSH证书认证就是客户端生成证书(私钥和公钥对),将公钥复制到该文件,每行一个证书。复制公钥时候可以使用ssh-copy-id命令或者直接手动配置authorized_keys文件即可。
  • id_*,包括id_rsa,id_dsa,id_ed25519,id_ecdsa等是保存在该用户下的证书私钥,用户通过SSH证书认证时候会自动搜索这些私钥进行认证。
  • id_*.pub 上述私钥对应的公钥,以.pub为后缀。
  • known_hosts 保存该主机连接过的远程服务器及其对应的主机公钥(用来对主机认证),再次连接到远程服务器如果公钥相同,则直接连接认证。如果没有,或者远程服务器有变化,会提示: 需要输入yes,确认才行。
  • config 文件用来配置本地ssh连接的一些项目,比如配置主机别名的,可以解决同一主机或者多台主机使用多个证书,就可以用config配置,比如下面的配置:
    image
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/git/github_id_rsa

Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/git/gitee_id_rsa

Host chongchong.com
HostName 112.34.6.71
Port 2222
User chongchong
IdentityFile ~/.ssh/id_ecdsa
ForwardX11 yes
Compression yes
TCPKeepAlive yes

前两个Host配置对github和码云使用不同的证书,后面一个Host对一台主机配置使用非默认的ssh端口、非默认当前用户以及一些启用一些ssh配置项目。
主要有两种登录方式:第一种为密码口令登录,第二种为公钥登录

密码登录

通过密码进行登录,主要流程为:
1、客户端连接上服务器之后,服务器把自己的公钥传给客户端
2、客户端输入服务器密码通过公钥加密之后传给服务器
3、服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录

公钥登录

公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。

标签:公钥,私钥,ssh,服务器,原理,客户端,id,密钥
来源: https://www.cnblogs.com/harry66/p/16504452.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有