SSH配置—Linux下实现免密码登录

首先,假设我们有两台服务器,服务器名称分别是 master 和 slave1,我们现在需要做的就是在服务器 master 上面登录 服务器 slave1 不需要输入密码就可以登录成功,如下图所示。

下面开始我们的配置步骤

1、服务器 master 上生成密钥

可以通过使用 ssh-keygen 命令来生成,我们可以先使用 man 命令或者是 help 命令查看具体需要哪些参数以及具体信息。

通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。

执行上面的命令时,我们直接按三次回车,之后会在用户的根目录下生成一个 .ssh 的文件夹,我们进入该文件夹下面并查看有哪些内容。

我们看到有四个文件,下面分别解释下每个文件是干什么用的。

authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。

id_rsa: 生成的私钥文件

id_rsa.pub: 生成的公钥文件

known_hosts: 已知的主机公钥清单

2、远程密钥登录

这里介绍最常用的三种方式,一是通过 ssh-copy-id 命令,二是通过 scp 命令,三是手工复制。

方式一,通过 ssh-copy-id 命令设置。最后一个参数是我们要免密钥登录的服务器 ip 地址。

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100

方式二,通过 scp 命令直接将该文件远程复制过去,使用这种方式需要注意,如果你之前已经配置了其它服务器上的密钥,这是使用这种方法,就会覆盖掉你原来的密钥,这时候是不建议使用这种方式的,如果你是先将该文件复制到服务器上的一个目录下,然后在使用追加的方式,将密钥追加到 authorized_keys 也是完全 OK 的。如果你只有两台服务器也是可以直接复制到文件。

scp -p ~/.ssh/id_rsa.pub [email protected]<ip>:/root/.ssh/authorized_keys

方式三,通过手工复制。将本地 id_rsa.pub 文件的内容拷贝至远程服务器的 ~/.ssh/authorized_keys 文件中也完全可以的。先使用 cat 命令查看当前的公钥,然后复制,在到目标服务器上去粘贴。

以上步骤,我们就完成了免密钥登录,下面我们来进行验证。

到此,我们的 ssh 免密钥登录就大功告成。下面给大家说说免密钥登录的原理,有兴趣的可以看看。

首先来看下原理图

1、ssh 客户端向 ssh 服务器端发送连接请求

2、ssh 服务器端发送一个随机的信息

3、ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密

4、ssh 客户端向服务器端发送加密过后的信息

5、ssh 服务器端使用公钥对该信息进行解密

6、若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。

PS:如果觉得文章不错的话,还请大家点赞分享下,算是对我的最大支持。

原文地址:https://www.cnblogs.com/hanwen1014/p/9048717.html

时间: 2024-07-29 21:04:17

SSH配置—Linux下实现免密码登录的相关文章

Linux下实现免密码登录(超详细)

1.Linux下生成密钥 ssh-keygen的命令手册,通过"man ssh-keygen"命令: 通过命令"ssh-keygen -t rsa" 生成之后会在用户的根目录生成一个 ".ssh"的文件夹 进入".ssh"会生成以下几个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts

linux下A免密码登录B

linux下A免密码登录B 现在有两台linux服务器A:192.168.1.111,B:192.168.1.112 1.在A(192.168.123.111)生成公钥私钥对,命令如下: ssh-keygen  -t rsa -P '',如图: -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车. 2.在/root/目录下生成了id_rsa.id_rsa.pub文件,如图: id_rsa是私钥,id_rsa.pub是公钥. 3.将公钥复制到B(192.

Linux下实现免密码登录

1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文件夹 进入“.ssh”会生成以下几个文件 authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : 已知的主机公钥清单 如果希望ssh公钥生效需满足至少下面两个条件

Linux下实现免密码登录(超详细)_Linux_脚本之家

Linux ssh密钥登录和取消密钥登录 2016-05-18? linux技巧 ? 暂无评论 在VPS中利用vi编辑器编辑sshd的配置文件 vi /etc/ssh/sshd_config 找到 RSAAuthentication和PubkeyAuthentication 两行,并将前面的"#"去掉. 找到PasswordAuthentication行,并将后面的"yes"改为"no".(取消密钥登录只需要把NO改成YES) 保存并退出之后,运

实现一台Linux电脑连接另一台Linux(SSH实现linux之间的免密码登陆)

怎么实现一台Linux电脑连接另一台Linux电脑? 首先查看是否安装ssh服务:systemctl status sshd.service 启动服务:systemctl start sshd.service    重启服务:systemctl restart sshd.service    开机自启:systemctl enable sshd.service 若已经安装了ssh服务直接在终端输入:ssh [email protected](该IP是要连接的计算机ip) 如果没有安装,就在命令行

Linux ssh下实现免密码登录

1.Linux 生成密钥 ssh-keygen -t rsa 进入".ssh"会生成以下几个文件 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : 已知的主机公钥清单 2.远程免密登录(现在我们就需要把key文件复制到其它几台服务器了,) 常用以下几种方法: a.通过ssh-copy-id的方式  命令: ssh-copy-id (服务器IP) 常见错误: [root@test ~]# ssh-copy-id -i ~/.ssh/id

[原]配置多个密钥免密码登录服务器简明教程

客户端:MacOS 服务端:CentOS 其他系统操作类似. 1. 客户端生成密钥. ssh-keygen -t rsa -C "mac" * -C 是注释的意思,如果你有多个密钥,价格注释比较好区分 * windows系统可能没有ssh-keygen命令,装一个git-bash就好了 2. 上述命令一直敲回车,会生成两个文件id_rsa,id_rsa.pub,前面是私钥,后面是公钥. 私钥放到本机~/.ssh目录下,改个名字:id_rsa_mac,方便以后增加其他密钥,在~/.ssh

Centos7下实现免密码登录

一.生成密钥 [[email protected] ~]# ssh-keygen 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 /

Linux ssh安全设置,及免密码登录

首先,关于Linux远程登录,很多的同学都知道,也基本都使用过工具连接.这里只讲Xshell的配置方法 大家都知道,Xshell提供了两种认证的方式:口令认证,密钥认证 口令最常用,今天写个Xshell 设置密钥认证方式登录方法 基本思路是:生成密钥--->配置密钥到服务器 ~/.ssh/authorized_key文件中 ---> 配置SSH客户端 第一步:生成密钥 选择RSA 加密算法,密钥长度为2048 选择下一步生成密钥 生成后下一步输入密钥名称,推荐使用地区-应用-IP 如 上海-w