Linux设置免密登录

xshell生成公钥私钥并实现登录

ssh登录提供两种认证方式。
1.采用口令认证方式(较为常用)
2.另外一种则是使用公钥和私钥进行登录

采用公钥私钥登录方式主要分为三步:

1. 生成密钥(公钥和私钥)
2. 放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中
3. 拷贝私钥(Private Key)自己妥善保存,用于认证
4. 配置使用ssh客户端使用密钥

生成密钥

#1. 生成公钥和私钥
[root@home:~$] ssh-keygen
#2. 弹出提示
Generating public/private rsa key pair.
#3. 选择存放key的文件的位置
Enter file in which to save the key (/home/.ssh/id_rsa):
#4. 提示输入生成公钥私钥使用的密码,可以默认,直接回车就行
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
#5. 显示公钥私钥生成的位置,不带.pub的是私钥,带.pub是公钥
Your identification has been saved in /home/.ssh/id_rsa.
Your public key has been saved in /home/.ssh/id_rsa.pub.
#6. 剩余的输出的信息
The key fingerprint is:
SHA256:bEnqIod+P9hUbwjAvTLJX8WClWIgPDnxFqxm/ZSSPTg zhangfa@xjtuPC2
The key's randomart image is:
+---[RSA 2048]----+
| .o=oo o.o       |
|  =o+.= o o      |
|   *oB +.o       |
|  +.E B+o.       |
| o   O.=So       |
|   . .+.. o      |
|  o o+.  .       |
| . oo.o          |
|  .. ...         |
+----[SHA256]-----+

在服务器上注册公钥

[root@home:~]$ cd .ssh/
# 将刚刚的公钥注册到authorized_keys中
[root@home .ssh]$ cat id_rsa.pub >> authorized_keys

注意:如何权限不够,则可以进行权限修改

[root@home:~]$ chmod 600 authorized_keys
[root@home:~]$ chmod 700 ~/.ssh

下载公钥,使用私钥进行认证登录

在这里插入图片描述在这里插入图片描述
点击确定连接即可

两台或多台服务器之间免密登录设置

有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25。让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh localhost 时不需要密码)。

让服务器A实现免密登录自己

1.在A服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub。
在服务器A操作

ssh-keygen

一路回车键,服务器A的私钥即可生成
2.在服务器A中把公钥id_rsa.pub追加到服务器A管理密码登录权限的文件(authorized_keys)中。

cat id_rsa.pub >> authorized_keys

3.此时,服务器A可免密登录服务器器A了。验证:
在这里插入图片描述

让服务器A实现免密登录服务器B

1、把服务器A的公钥id_rsa.pub复制到服务器A要免密登录的那台服务器(即B)中的指定位置(/root/.ssh);
在服务器A操作

scp id_rsa.pub 192.168.2.25:/tmp

2、在服务器B中把公钥id_rsa.pub追加到服务器B管理密码登录权限的文件(authorized_keys)中。
在服务器B操作

 cd /root/.ssh
 cat /tmp/id_rsa.pub >> authorized_keys

此时,服务器A的公钥(登录服务器B的权限)追加到服务器B中的权限文件authorized_keys中,服务器A可免密登录服务器器B了。
原因:因为此时服务器B的密码登录权限文件authorized_keys中已经有服务器A的公钥,即A获得了B的登录权限。
3、验证:
在服务器A中操作
在这里插入图片描述
登录已经不需要密码了。

让服务器B实现免密登录服务器A

和步骤二是一样的操作。

非root用户设置密钥登录

和上面操作类型,主要要注意修改目录及文件的权限
修改.ssh的权限为700, authorized_keys的权限为600或者更严格的400,否则登录的时候会提示server refuse you key。(普通用户需要去自己的home目录中修改)

注意事项

最后如何需要修改登录方式,一定要注意在配置密钥登录成功之前,千万不要将PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录。在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了。

参考:https://blog.csdn.net/l8947943/article/details/111463910
https://blog.csdn.net/baobaoclass/article/details/124895229
https://blog.csdn.net/weixin_41997940/article/details/123607318

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值