1、公私钥简介与原理
公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:
1) 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。
2) 乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。
3) 甲接收到乙发送来的字串与自己的字串进行对比,如过通过则验证通过,否则验证失败。
流程:
主机A(Linux客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。
步骤:
客户端中制作密钥对(Linux命令)
ssh-keygen
[root@host ~]$ ssh-keygen <== 建立密钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空 Enter same passphrase again: <== 再输入一遍密钥锁码 Your identification has been saved in /root/.ssh/id_rsa. <== 私钥 Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥 The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
现在,在客户端 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。
将公钥文件中的内容拷贝到服务器的~/.ssh/authorized_keys文件中 cat id_rsa.pub >> authorized_keys
如果是windows中使用ssh工具登录:
私钥文件一般放在c:/users/Administrator/目录中
在使用ssh工具登录时选择public Key,导入私钥,即可登录
如果是在Linux系统中使用ssh命令登录:
将客户端公钥文件导入到服务器的~/.ssh/authorized_keys文件中
ssh-copy-id -i ~/.ssh/id_rsa.pub root@139.155.44.138
ssh免密登录
ssh -p22 root@139.155.44.138
参考:
https://www.runoob.com/w3cnote/set-ssh-login-key.html