Linux下使用密钥免密码登录

一、前言
在日常使用linux过程中,我们希望不用每次登录Linux服务器都要输入密码,那么这个时候可以选择ssh密钥登录,就是rsa公钥放到服务器上,私钥放在客户端上,每次登录的时候,用密钥登录;这样更方便也更安全。

二、步骤
1、首先准备两台服务器,一台用作客户端(zn),一台用作服务端(tos)。
(1)如果需要实现一个用户对另一个用户的访问,则需要在创建用户的时候使用adduser,会在/home下自动创建家目录。
(2)可以选择从服务端创建好私钥、公钥,然后下发给客户端;当然也可以从客户端创建好私钥、公钥,然后下发给服务端。以下采用的是服务端生成密钥对。

2、密钥登录流程:
(1)服务端生成一个密钥对,私钥自己保留,将公钥拷贝给客户端。
(2)客户端发送免密登录请求。
(3)服务器查找~/.ssh/authorized_keys文件下是否有对应客户端IP的公钥。
(4)如果有,则随机生成一段字符串,并用客户端的公钥将字符串进行加密,然后发送给客户端。
(5)客户端收到加密的字符串后,用私钥进行解密。
(6)客户端将解密之后的字符串发送给服务端。
(7)服务端检查客户端发来的字符串与之前发给客户端的字符串是否一致,若一致则验证通过。

3、服务端(tos):
(1)cd /home/tos/.ssh (若没有该目录,先执行ssh localhost或者mkdir /home/tos/.ssh)
(2)生成公钥对,此时一直按回车就行

ssh-keygen -t rsa

(3)检查下.ssh目录下authorized_keys文件是否存在,没有的话创建一个

touch authorized_keys

(4)将id_rsa.pub的内容追加到authorized_keys文件尾

cat ./id_rsa.pub >> ./authorized_keys

(5)ssh-copy-id -i /home/tos/.ssh/id_rsa.pub zn@zn的ip地址(将公钥传输到zn;若无ssh-copy-id需要另外安装)
(6)切换到上级目录,修改.ssh的权限为700, authorized_keys的权限为600或者更严格的400,否则登录的时候会提示server refuse you key。

cd ..
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

4、客户端(zn):
(1)cd /home/zn/.ssh(检查客户端是否有RSA私钥)
(2)登录服务端:

ssh tos@XXX.XXX.XXX.XX

5、关闭密码登录:
修改配置文件/etc/ssh/sshd_config
在这里插入图片描述
把#号去掉,yes改为no即可
在这里插入图片描述
此时该设备只能用密钥登录

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值