ssh免密登录

来源:互联网 发布:淘宝网首页全屏代码 编辑:程序博客网 时间:2024/05/22 06:15

现有服务器A、B、C三台linux服务器。
A–>B模式
现在需要访问A服务器免密登录B服务器。
先在A服务器执行 ssh-keygen -t rsa -P ” 命令,生成无密码密钥。如下:
[root@iZ23nq7jrhfZ conf]# ssh-keygen -t rsa -P ”
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
2a:0f:10:5b:78:3e:1b:ed:16:b3:9e:27:9f:f3:48:d2 root@hs02
The key’s randomart image is:
+–[ RSA 2048]—-+
| |
| . |
| o o |
| * . |
| o + + S |
| . = * |
| + * E |
| *.+oo |
| +++o. |
+—————–+

key-gen

生成密钥后,若没有更改默认存放密钥路径,默认在~/.ssh文件路径。在该目录下会生成两个文件,id_rsa与id_rsa.pub。如下图:

keys

id_rsa文件是一个私钥,存放于生成密钥的服务器上。id_rsa.pub文件是一个公钥,存放于需被服务器免密登录的服务器。对应于上述需求,在A服务器生成公钥与私钥。然后将公钥存放在B服务器~/.ssh文件目录。可用scp命令实现,比较方便。

scp

scp id_rsa.pub root@hs01:~/.ssh/id_rsa_192.pub 表示以root用户登录hs01对应的服务器,将id_rsa.pub文件拷贝至~/.ssh目录,命名为id_rsa_192.pub。输入上述命令后,会要求输入被登录服务器的密码。
上述hs01(B服务器)是通过/etc/hosts文件配置的,对常用的服务器,可以设置一下,方便操作。如下图:

hosts

完成上述操作后,root用户登录B服务器,并输入命令 cd ~/.ssh命令进入~/.ssh 目录。
查看是否存在id_rsa_192.pub文件。如下图:

pub-key

存在,即说明文件拷贝成功。执行
cat id_rsa_192.pub > authorized_keys 命令,将文件id_rsa_192.pub里的数据重定向到authorized_keys文件。也可以用
mv id_rsa_192.pub authorized_keys命令,将id_rsa_192.pub文件重命名为authorized_keys。
接下来就是验收的时候了。假设B服务器ip为10.20.30.40,那么执行
ssh 10.20.30.40 查看是否会让你输密码,若出现Welcome…什么的表示免密登录成功了。可以在/etc/hosts文件配置10.20.30.40别名为 hs01,则可以用 ssh hs01进行免密登录。如下图:

ssh-login

A–>B<–C模式
上述方案实现了A服务器免密登录B服务器。假设现在C服务器也需要免密登录B服务器。
按照上述方法现在C服务器生成私钥与公钥。并将公钥拷贝至B服务器~/.ssh目录。假设拷贝至B服务器的公钥文件名为:id_rsa_192.pub,则执行

cat id_rsa_192.pub >> authorized_keys ,咋一看没区别,注意中间的 “>>”是两个大于符号,表示为在authorized_keys文件尾部追加id_rsa_192.pub里的内容。若依旧执行
cat id_rsa_192.pub > authorized_keys 那么会导致A服务器免密登录B服务器失效。所以务必注意,若发现存在authorized_keys文件,那么需执行
cat id_rsa_192.pub >> authorized_keys 命令,以免给他人或者自己带来不必要的麻烦。
B<–A–>C模式
若需要给A服务器同时免密登录B、C服务器,那么将A服务器生成的公钥分别拷贝至B、C服务器的~/.ssh目录下。然后执行
cat id_rsa.pub >> authorized_keys 即可。

注:
“A–>B模式”:一台服务器免密登录另一台服务器。
“A–>B<–C模式”:多台服务器免密登录某一台服务器。
“B<–A–>C模式”:一台服务器免密登录多台服务器。

原创粉丝点击