使用ssh-keygen命令生成密钥对无密码远程登陆linux主机

时间:2022-03-26 14:29:05

我们在工作或试验中经常会需要登录多台linux主机进行操作,开启过多的ssh登陆界面,在不同的主机间切换时是非常让人的抓狂一件事情,只登陆一台linux主机然后通过此主机ssh登陆到其他主机这样是比较好的一种方式,但是在ssh登陆到其他主机时频繁的输入密码会让我们一直做重复的输入密码的工作,那有没有可以自动记住密码,或者不需要输入密码的工具呢?
linux自带的ssh-kengen命令可以让我们轻松实现无密码登陆其他主机。

1.使用ssh-keygen -t rsa # //rsa 代表使用rsa的方式加密 ,#是数字,代表生成的密钥位数。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa)://默认生成的密钥对存放位置 ,使用-f参数可以手动设置密钥存放的位置
Enter passphrase (empty for no passphrase): //生成的密钥是否设置密码,不设置的话回车即可,否则输入密码(一般不设置密码,否则的话每次ssh远程登陆还是需要输入密码。)
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:
a8:0c:36:c4:1c:3e:d8:5a:09:8a:48:98:3d:ca:9e:4d root@sqladmin2.xiewl.com
The key's randomart image is:
+--[ RSA 2048]----+
|o+. |
|BBoo |
|*.X. |
|.= E . |
|o B . S |
| + = . |
| o |
| |
| |
+-----------------+

2.将生成的公钥文件id_rsa.pub保存到需要远程登陆的主机上的用户的家目录下的.ssh文件内(如无此文件夹可手动创建),并命名为authorized_keys,名称必须为此,否则无法远程登陆成功。
方式一:在远程主机用户家目录手动生成此文件。

[root@sqlmaster ~]# mkdir .ssh
[root@sqlmaster ~]# vim .ssh/authorized_keys

然后将id_rsa.pub内的文件内容复制黏贴至.ssh/authorized_keys文件中即可。
方式二:使用ssh-copy-id 命令拷贝到远程主机。此命令会自动命名为authorized_keys,只需要保证远程主机.ssh文件夹存在即可。

#ssh-copy-id -i id_rsa.pub root@mirrors// -i:指明需要copy的文件 root:远程时登陆的用户 mirrors:远程的主机 (首次copy文件时需要输入账户密码)

这样远程主机的root用户的家目录下的.ssh文件就会自动生成authorized_keys。

以上两种方式。
这样就算配置完成了。就可以尝试无密码登陆了。