Linux-ssh秘钥登录

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

https://www.cnblogs.com/henkeyi/p/10487553.html

原文地址:https://www.cnblogs.com/fanfan-90/p/12252966.html