linux用公钥免密码登录

来源:互联网 发布:手机借款软件 编辑:程序博客网 时间:2024/05/29 16:45

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

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

ls -al ~/.ssh

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

二.生成SSH KEY

请将 your_email@example.com 替换为你的邮箱:

> ssh-keygen -t rsa -C "your_email@example.com"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 root@192.168.1.181:/root/.ssh/authorized_keysroot@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机以上面同样的方式配置即可。