Linux SSH免密登录

简单描述:
就是将服务器自己生成的pub公有密钥放到对方的auth认证文件中,就可实现免密登陆。

1.生成私钥文件

在客户端终端下输入以下命令

ssh-keygen -t rsa

每次执行 ssh-keygen -t rsa 产生的私钥文件都会不同

如果文件”~/.ssh/id_rsa”存在,会提示是否覆盖该文件,此时可选择”n”不覆盖该文件而使用已有的id_rsa文件

如果选择”y”则会重新生成”~/.ssh/id_rsa”文件。接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成id_rsa文件和id_rsa.pub文件(在~/.ssh目录下)

2.在主服务器终端中执行scp远程拷贝命令

scp /home/tq/.ssh/id_rsa.pub tq@slave:~/.ssh/id_rsa_1.pub

3.在备服务器终端中执行scp远程拷贝命令

scp /home/tq/.ssh/id_rsa.pub tq@master:~/.ssh/id_rsa1.pub

将生成的id_rsa.pub文件拷贝到远程服务器的 ~/.ssh/ 目录下

4.将公钥追加到授权KEY里面

在两台服务器终端都要执行如下操作

如果远程服务器上已经存在”~/.ssh/authorized_keys”文件,那么需要编辑服务器上”~/.ssh/authorized_keys”文件,将客户端机器上的”id_rsa.pub”文件内容追加到”~/.ssh/authorized_keys”文件中。

如果服务器上没有”~/.ssh/authorized_keys”文件,执行下面这条命令

cp  id_rsa.pub  authorized_keys

然后需要编辑服务器上”~/.ssh/authorized_keys”文件,将客户端机器上的”id_rsa1.pub”文件内容追加到”~/.ssh/authorized_keys”文件中

一定要赋予600权限,否则还需要密码登陆
# chmod 600 authorized_keys 

5.测试是否配置生效

ssh tq@master

ssh tq@slave

此时不需要再输入密码就可以访问远程服务器

Comments

No comments yet. Why don’t you start the discussion?

发表评论

邮箱地址不会被公开。