linux用公钥免密码登录

一.A主机连接到B主机。

1.检测A主机是否已经生成过 SSH Key

ls -al ~/.ssh

如果存在 id_rsa 和 id_rsa.pub的话,说明已经生成了SSH KEY.
否则使用二步骤生成、

二.生成SSH KEY

请将 [email protected] 替换为你的邮箱:

> ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.

命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

可以都选择默认,一路 Enter 键即可.
这个时候如果我们再使用:

> ls -al ~/.ssh

查看的话,会出现:
这里写图片描述

SSH 秘钥的两个文件:
id_rsa —— SSH 秘钥的 私钥 (Private Key)
id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)

三.B主机设置公钥

把A机下的/root/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /root/.ssh 这个目录,用scp复制。

[root@A ~]# scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
root@192.168.1.181's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00

由于还没有免密码登录的,所以要输入一次B机的root密码。
需要特别注意的是:B主机的.ssh文件的所有者要是root,如果不是要改:

chown -R root:root .ssh

同时,B主机的authorized_keys文件,要是600权限的,如果不是,也要改:

chmod 600 authorized_keys

四.A主机使用公钥免密登录B主机的root用户

[root@A ~]# ssh -l root 192.168.1.181

第一次登录是时要你输入yes。

现在A机可以无密码登录B机了。

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。

你可能感兴趣的:(linux)