Linux的密钥——实现无密码登录

简介: 1、安全密钥加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果 担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。

1、安全密钥

加密是对信息进行编码和解码的技术,它通过一定的算法(密钥)将原本可以直接阅读的明文信息转换成密文形式。密钥即是密文的钥匙,有私钥和公钥之分。在传输数据时,如果 担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再行传送。这样, 只有掌握私钥的用户才能解密这段数据,除此之外的其他人即便截获了数据,一般也很难将其破译为明文信息。

一言以蔽之,在生产环境中使用密码进行口令验证终归存在着被暴力破解或嗅探截获的 风险。如果正确配置了密钥验证方式,那么 sshd 服务程序将更加安全。

密钥就是密文的钥匙的简称,其实际上是一种加密算法,有公私钥之分。

2、无密码登录实现

以root用户身份登录主机A,然后通过命令ssh-keygen生成公私密钥对,将这个用户的公钥放到主机B上。这样,这个用户以后再用ssh连接主机B时,不用输入密码就能直接登录成功。

实现步骤:
1、root用户身份登录主机A,通过ssh-keygen命令生成公私密钥:

[root@jiang ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
#指定私钥的保存文件,不指定默认是/root/.ssh/id_rsa文件  
Enter passphrase (empty for no passphrase):  
#这里是为私钥设置密码,可以不设置,直接回车
Enter same passphrase again:   #再次输入私钥密码
Your identification has been saved in /root/.ssh/id_rsa.
#私钥的配置文件是/root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub.
#公钥的配置文件是/root/.ssh/id_rsa.pub

2、将生成的公钥放到主机B上:

[root@jiang ~]# ssh-copy-id root@172.16.21.77
   root@172.16.21.77's password:
Now try logging into the machine, with "ssh 'root@172.16.21.77'", and check in:
     .ssh/authorized_keys  #表示将公钥保存到主机B家目录下的.ssh/authorized_keys文件中
     to make sure we haven't added extra keys that you weren't expecting.

3、验证是否成功:
ssh 主机B的IP

4、设置只允许密钥验证登录(可选)
可以对服务器B设置为只允许密钥验证登录,拒绝传统的口令验证方式。记得在 修改配置文件后保存并重启 sshd 服务程序。
在服务器B上进行下面设置:

[root@jt ~]# vi /etc/ssh/sshd_config
PasswordAuthentication no   #在文件中找到这一行,并将yes修改为no
[root@jt ~]# systemctl restart sshd

这样,只有A服务器可以免密登录,其他服务器无法通过传统的口令验证方式登录B服务器,除非也设置免密登录。

5、配置ssh hostname登录方式
如果IP记不住,可以考虑设置这种登录方式。在服务器A上进行如下设置:

在/etc/sysconfig/network文件中添加:
NETWORKING=yes
HOSTNAME=*

在/etc/hosts文件的最后一行添加主机A和B的ip和主机名:
A_IP A_HOSTNAME
B_IP B_HOSTNAME

重启network服务:service network restart

6、可以通过ssh hostname登录主机

3、过程说明

1、ssh-keygen命令用于生成公私钥,可以加-t rsa,也可以不加;
2、每一个用户都有自己的公私密钥,不可混淆。用户的公私密钥都默认放在家目录的.ssh目录下
3、ssh-copy-id用于将公钥上传到别的主机,用法类似scp。通用格式是:
ssh-copy-id [-i 公钥文件] [用户名]@主机IP
不指定文件就默认上传公钥文件;
不指定以什么用户登录主机B的话,就默认以当前用户登录,前提是主机B有这个用户;
4、ssh-copy-id命令原理是将主机A公钥的内容添加到主机B的authorized_keys文件中;

目录
相关文章
|
7月前
|
监控 安全 Linux
在Linux中设定账户密码的安全性策略
这些操作应该由有经验的系统管理员进行,因为不当的配置可能导致无法预期的安全问题或者系统访问问题。此外,提升安全性的同时,也需要考虑到用户的便利性,避免设置过于严苛的政策导致用户体验不佳。通常,强密码策略配合两因素认证(2FA)将大大加强账户的安全性。
617 13
|
8月前
|
运维 Ubuntu Linux
Linux重置root用户密码
本文详细介绍了Linux系统中root密码重置的核心技能,涵盖主流发行版如RHEL、CentOS、Debian、Ubuntu、Arch、openSUSE等的实操方法。内容包括通过GRUB引导编辑、单用户模式和Live CD救援三种方式重置密码的具体步骤,适配物理机、虚拟机及云服务器环境。文章分步解析了启动拦截、权限获取和密码重置三大阶段,并提供各发行版的实际操作代码示例,帮助管理员快速解决忘记root密码的问题。
|
12月前
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
安全 Linux 数据安全/隐私保护
linux root登陆,密码正确但,错误提示su: Authentication failure
通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。
6539 36
|
12月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
382 13
|
12月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
407 5
|
安全 Linux 数据安全/隐私保护
Linux 忘记密码解决方法
Linux 忘记密码解决方法
260 2
Linux 忘记密码解决方法
|
Linux Shell 数据安全/隐私保护
Linux如何在服务器上进行密码的修改?
【10月更文挑战第6天】Linux如何在服务器上进行密码的修改?
2463 1
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
202 1
|
Ubuntu Linux Shell
Linux系统密码忘记
【10月更文挑战第2天】在Linux系统中,若忘记密码,可以通过单用户模式或使用Live CD/USB来重置。对于Ubuntu系统,可通过GRUB引导菜单进入单用户模式,利用命令行重置密码;或使用Live CD/USB启动并挂载硬盘分区后修改密码文件。CentOS系统同样支持单用户模式重置密码,也可借助安装介质进入救援模式,挂载文件系统后进行密码重置。这些方法均能在忘记密码的情况下帮助恢复系统访问。
890 3