linux主机的免密登录

发布时间:2024年01月14日

实现linux主机之间的相互免密登录

在进行远程登录的时,服务器和主机间进行认证阶段分为:

基于口令认证(不安全,易被抓包拦截获取)
客户机连接服务器时,服务器将自己的公钥返回给客户机
客户机会将服务器的加密的公钥追加到/root/.ssh/known_hosts文件中
客户机输入账号密码登录
当第二次去连接时,客户机会先检查/root/.ssh/known_hosts文件查找服务器记录,若有则直接输入账号密码登录

基于公钥认证(相对口令认证更为安全)

客户机将自己的公钥添加在服务器的/root/.ssh/authorized_keys
客户机连接服务器时,会在/root/.ssh/authorized_keys中匹配到客户机的公钥pubKey,并生成随机数R,用客户机的公钥对该R进行加密,然后将加密信息发送给客户机
客户机用自己的私钥解密得到随机数R,然后对随机数R和本次会话的SessionKey(会话密钥)利用MD5算法得到Digest1,发送给服务器端。
服务器也对R和SessionKey(会话密钥)用同样的算法生成Digest2
服务器端会最后比较Digest1和Digest2是否相同,完成认证过程

本次利用两台linux主机进行操作:root@server 和 root@server

服务端配置

#确认ssh服务程序是否安装
[root@sever ~]# rpm -qa | grep ssh
grep-3.11-1.oe2309.x86_64
openssh-server-8.7p1-24.el9_1.x86_64
 
#查看ssh服务在后台是否运行
[root@sever ~]# ps -aux | grep ssh
root         841  0.0  0.5  16088  9316 ?        Ss   17:20   0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root        2685  0.0  0.6  19380 11788 ?        Ss   17:50   0:00 sshd: root [priv]
root        2690  0.0  0.3  19380  6732 ?        S    17:50   0:00 sshd: root@pts/1
 
#关闭防火墙
1、[root@server ~]# systemctl disable firewalld
2、[root@server ~]# setenforce  0
 
 
#修改ssh服务相关配置
[root@server ~]# vim /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd

客户端配置

#创建密钥对
[root@localhost ~]# ssh-keygen -t rsa
ssh-keygen 生成、管理和转换认证密钥 -t制定类型 RSA算法
(一路敲回车)
 
[root@localhost ~]# ll .ssh/
total 8.0K
-rw------- 1 root root 2.6K Jan 10 18:18 id_rsa(私钥文件)
-rw-r--r-- 1 root root  565 Jan 10 18:18 id_rsa.pub(公钥文件)
 
#复制该公钥文件到服务端的该目录下
[root@localhost ~]# ssh-copy-id root@192.168.75.128(服务端的ip地址)

免密登录配置成功

文章来源:https://blog.csdn.net/2301_80177550/article/details/135569166
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。