Linux 实现ssh免密方法

Linux 实现ssh免密两种方法

        • 一、单向免密
          • 1.生成密钥对
          • 2.生成authorized_keys文件并授权
          • 3.复制authorized_keys文件到目标主机
        • 二、双向免密
          • 1.生成密钥对
          • 2.生成authorized_keys文件并授权
          • 3.传输的密钥对到服务端
  • 总结

提示:准备两台机器以上
比如我的:
A机器:10.0.0.11 B机器:10.0.0.12

一、单向免密
1.生成密钥对
A机器:10.0.0.11
[root@bk_paas ~]# ssh-keygen -t rsa -b 2048 -N "" -f $HOME/.ssh/id_rsa
Generating public/private rsa key pair.
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:
SHA256:zABWuctyvuV62VFRCxFYqMH7zZ5yuiMxWMzX3ZVueMI root@bk_paas
The key's randomart image is:
+---[RSA 2048]----+
|    o..o   +=+. .|
|   . .. o o .. o.|
|      .+ + ..o+..|
|      .+* . oE.+.|
|     . +So +  +  |
|    . = o o o    |
|     +  .= o .   |
|      .o+ + +    |
|      o+..o*     |
+----[SHA256]-----+

以上选项说明
-t 选项(默认 rsa)
生成的密钥类型(不带默认为 rsa),类型有四种分别是 dsa | ecdsa | ed25519 | rsa

dsa 	因安全性不高,基本已经不再使用。
ecdsa 	因技术原因等,基本已经不再使用。
ed25519 加解密速度快,生成时间快,且安全性更高。
rsa 	加解密速度慢,生成时间慢,安全性没有 ed25519 高。(用的人多兼容性好)

-b 选项

表示生成的密钥的大小(以字节:byte 为单位)
在生成时如果指定的 key size 太小也会有安全的问题,建议指定 key size 为 2048 或更大。

-N 选项

指定新密码,'' 表示密码为空。

-f 选项

指定密钥对生成路径
2.生成authorized_keys文件并授权

解释:authorized_keys 作用于用来实现免密的公钥文件,需要传给目标端,当客户端访问目标端时,会访问目标端的公钥也就是authorized_keys ,然后这边就会拿私钥去解公钥,由于公钥是客户端这边传过去的,自然而然就能成功解析出来,从而实现免密

A机器:10.0.0.11
# 利用生成id_rsa.pub公钥 生成authorized_keys文件
cat $HOME/.ssh/id_rsa.pub >>$HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
3.复制authorized_keys文件到目标主机
A机器:10.0.0.11 -> B机器:10.0.0.12
rsync -a $HOME/.ssh/authorized_keys root@10.0.0.12:/root/.ssh/

注意:传过去以后就已经实现了免密(单向)客户端->服务端

二、双向免密
1.生成密钥对
A机器:10.0.0.11
[root@bk_paas ~]# ssh-keygen -t rsa -b 2048 -N "" -f $HOME/.ssh/id_rsa
Generating public/private rsa key pair.
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:
SHA256:zABWuctyvuV62VFRCxFYqMH7zZ5yuiMxWMzX3ZVueMI root@bk_paas
The key's randomart image is:
+---[RSA 2048]----+
|    o..o   +=+. .|
|   . .. o o .. o.|
|      .+ + ..o+..|
|      .+* . oE.+.|
|     . +So +  +  |
|    . = o o o    |
|     +  .= o .   |
|      .o+ + +    |
|      o+..o*     |
+----[SHA256]-----+
2.生成authorized_keys文件并授权
A机器:10.0.0.11
# 利用生成id_rsa.pub公钥 生成authorized_keys文件
cat $HOME/.ssh/id_rsa.pub >>$HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
3.传输的密钥对到服务端
A机器:10.0.0.11 -> B机器:10.0.0.12
rsync -a $HOME/.ssh/id_rsa* $HOME/.ssh/authorized_keys root@10.0.0.12:/root/.ssh/

# 注意有可能没有rsync命令需要进行下载
# yum install -y rsync

注意:以上输入密码后,传输到目标端后就可以成功双向免密

总结

快去试试吧,等你好消息!

你可能感兴趣的:(Linux,案例篇,linux,ssh,服务器)