Linux实现SSH免密码登录别的服务器

概述

rsync 在每次进行多个机器同步的时候输入都得输入目标服务器的密码,这样的话很麻烦,我们可以借助SSH来实现免输入密码登录.

Xshell原理

每次通过Xshell连接Linux服务器的时候都需要输入用户名和密码和主机名,后续每次进行连接的时候都不需要输入密码的,只有第一次连接需要输入密码.

其实在第一次连接的时候实际上是建立了一次信任的过程,实际上是服务端生成了一个密钥给你进行保存.

举例子

A机器的a用户,希望在A机器上,使用B用户的身份登录到B机器,需要以下操作:

步骤:
①A机器的a用户,在A机器上生成一对密钥
shell命令:

ssh-keygen -t rsa

ssh-keygen 是生成密钥的意思, rsa是生成密钥的算法名字

②生成的密钥分为公钥和私钥,a用户需要将公钥拷贝到B机器上b用户的家目录下的authorithxxxx_keys 的文件里面
拷贝有两种方式,:
建议直接用方式2 ,简单粗暴.方式1只是了解.
方式1:
a)使用b用户登录到B机器
b)编辑authorithxxxx_keys,将公钥的内容进行添加
方式2:
上面的步骤在在A机器,使用a用户执行以下命令: ssh-copy-id b@B 就可以完成上面两个步骤的操作

③A机器的a用户,可以使用 ssh b@B进行登录.

演示

默认情况下需要输入密码才能登录,

[root@zjj101 demo]# ssh root@zjj102
root@zjj102's password: 
Last login: Thu Oct 15 09:37:00 2020 from 172.16.10.182
[root@zjj102 ~]# ^C
[root@zjj102 ~]# exit
登出
Connection to zjj102 closed.
[root@zjj101 demo]# 

生成公钥和私钥 , 默认保存括号里面的内容, 直接回车三下就可以了,

[root@zjj101 demo]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
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:
SHA256:36l76tMgE8NF4emz1eg1Cdpja1S3u8kiOSoT3LjgM2E root@zjj101
The key's randomart image is:
+---[RSA 2048]----+
|         .o.     |
|         ...     |
|       . .o . . .|
|        +. o = o.|
|      . So+ B =. |
|     E +oo.O = ..|
|    o o ooooB  . |
|     + +  .*o.. o|
|      o oo*=o .+ |
+----[SHA256]-----+
[root@zjj101 demo]# 

目录是隐藏目录,需要这样进来观看
查看的话需要 用 ls -al 查看,
或者直接cd到 /root/.ssh/

[root@zjj101 demo]# cd /root/.ssh/
[root@zjj101 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@zjj101 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq6Z1CKsbHw2nqycGXjnoxbi2l+DQt5Hnv5OmMjx8DdB1AxUBxwGZwWSMAWbqiOpbHOlOkHUgNPEXhv1AKP+Bg+W/v3w2xBgBI/YQpSTgMQCoKBzT1GNtrn3VgZ2X/k3PDzS17WCBvhO2InWAMIBhqT+ik2i+viTBYOD9AogyWoCe42zL8aTE7eQfCyzf/xMbaMd4Yll1JeRNPgYN6VzLW5LqXb3O5DHwcUsed0M659gboCRqcpARrvtXkeiZt7kyuJb2DOv6ADPINWA9iDwPYMXK44KUm3HnsnFo1yGpyVbtuDW/zZSPf5eaM0QmRGTZ2OpxWvExlzzGthUu0jRl7 root@zjj101
[root@zjj101 .ssh]# 

id_rsa 私钥 id_rsa.pub 是公钥

方式2

方式1需要手动复制,很麻烦,如果需要自行百度,直接演示方式2,
ssh-copy-id xxx

[root@zjj101 .ssh]# ssh-copy-id root@zjj102
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@zjj102's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@zjj102'"
and check to make sure that only the key(s) you wanted were added.

[root@zjj101 .ssh]#

直接登录 ,下面没输入密码直接就登录到了zjj102

[root@zjj101 .ssh]# ssh root@zjj102
Last login: Thu Oct 15 10:27:23 2020 from zjj101
[root@zjj102 ~]# 

查看是否写入成功
就能看到 authorized_keys 已经有内容了, 正常情况下 既然上面步骤都没输入密码就登录了,肯定说明已经成功了,

[root@zjj102 ~]# cd /root/.ssh/
[root@zjj102 .ssh]# ls
authorized_keys
[root@zjj102 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq6Z1CKsbHw2nqycGXjnoxbi2l+DQt5Hnv5OmMjx8DdB1AxUBxwGZwWSMAWbqiOpbHOlOkHUgNPEXhv1AKP+Bg+W/v3w2xBgBI/YQpSTgMQCoKBzT1GNtrn3VgZ2X/k3PDzS17WCBvhO2InWAMIBhqT+ik2i+viTBYOD9AogyWoCe42zL8aTE7eQfCyzf/xMbaMd4Yll1JeRNPgYN6VzLW5LqXb3O5DHwcUsed0M659gboCRqcpARrvtXkeiZt7kyuJb2DOv6ADPINWA9iDwPYMXK44KUm3HnsnFo1yGpyVbtuDW/zZSPf5eaM0QmRGTZ2OpxWvExlzzGthUu0jRl7 root@zjj101
[root@zjj102 .ssh]# 

取消免输入密码登录

直接清空目标服务器的/root/.ssh/的authorized_keys 文件里面的相关公钥信息即可.

[root@zjj102 ~]# cd /root/.ssh/
[root@zjj102 .ssh]# ls
authorized_keys
[root@zjj102 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq6Z1CKsbHw2nqycGXjnoxbi2l+DQt5Hnv5OmMjx8DdB1AxUBxwGZwWSMAWbqiOpbHOlOkHUgNPEXhv1AKP+Bg+W/v3w2xBgBI/YQpSTgMQCoKBzT1GNtrn3VgZ2X/k3PDzS17WCBvhO2InWAMIBhqT+ik2i+viTBYOD9AogyWoCe42zL8aTE7eQfCyzf/xMbaMd4Yll1JeRNPgYN6VzLW5LqXb3O5DHwcUsed0M659gboCRqcpARrvtXkeiZt7kyuJb2DOv6ADPINWA9iDwPYMXK44KUm3HnsnFo1yGpyVbtuDW/zZSPf5eaM0QmRGTZ2OpxWvExlzzGthUu0jRl7 root@zjj101

猜你喜欢

转载自blog.csdn.net/qq_41489540/article/details/109091590