欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

轻松搞定!Linux服务器的SSH远程无密码登录指南

最编程 2024-08-03 12:55:52
...

说明

业务场景中经常需要进行跨服务器的操作,即从一台服务器上登录到另外一台服务器,默认情况下,SSH远程登录时需要输入远程服务器密码。当需要在可信任的服务器之间进行频繁或自动化的操作时,输入密码就会带来不便。

本文介绍如何实现SSH远程免密登录。

服务器信息

假设有2台服务器,要实现本地服务器SSH免密登录远程服务器。

本地服务器:192.168.1.1

远程服务器:192.168.1.2

免密登录方法一

1、在本地服务器上运行命令,生成公钥、私钥

ssh-keygen

执行该命令后,系统提示时直接三次回车即可(通常按默认值处理)。

公钥储存在 /root/.ssh/id_rsa.pub 私钥储存在 /root/.ssh/id_rsa

2、在本地服务器上运行命令,拷贝公钥至远程服务器

# 示例中192.168.1.2为远程服务器IP
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.2

执行此命令需要输入远程服务器密码

3、在本地服务器上运行命令,测试ssh免密登录远程服务器

ssh 192.168.1.2

此时就可以直接免密登录远程服务器进行操作

免密登录方法二

在方法一中,拷贝公钥至远程服务器是通过命令的方式进行,需要输入远程服务器密码,此处介绍的方法则直接将公钥内容保存至远程服务器,无需通过密码的方式进行

1、在本地服务器上运行命令,生成公钥、私钥

ssh-keygen

执行该命令后,系统提示时直接三次回车即可(通常按默认值处理)。

公钥储存在 /root/.ssh/id_rsa.pub 私钥储存在 /root/.ssh/id_rsa

2、在本地服务器上运行命令,查看公钥并复制其内容

vim /root/.ssh/id_rsa.pub

# 复制公钥信息,以下为演示内容
ssh-rsa AAAAA/BBBBB/CCCCC root@centos

3、在目标服务器上运行命令,保存公钥信息

# 将第2步复制的公钥信息粘贴在文件后,然后保存
vim /root/.ssh/authorized_keys

4、在本地服务器上运行命令,测试ssh免密登录远程服务器

ssh 192.168.1.2

此时就可以直接免密登录远程服务器进行操作

额外说明,两种方法本质上是一样的,都是将公钥放置在目标服务器上,无非是方法一通过命令的方式自动完成,方法二通过人工复制的方法手动完成