其他分享
首页 > 其他分享> > ssh密钥原理

ssh密钥原理

作者:互联网

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

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

私钥

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

公钥

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

说明:

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

.ssh目录介绍

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

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