Linux系统实现SSH安全免密登录的设置与管理
简介:SSH 呀,在 Linux 里可是功能超强的远程访问工具呢,能让咱们轻轻松松访问本机或者远程服务器,然后完成文件传输的操作。通常来说,SSH 登录大多用的是用户名加上密码这种方式。但实际上呀,还有一种更安全些的密钥登录方式。SSH 密钥登录用的是 RSA 非对称加密,所以 SSH 登录时就能用 RSA 密钥登录。SSH 有个专门创建 SSH 密钥的工具叫 ssh-keygen,通过它能很容易地生成 RSA 非对称密钥,包括公钥和私钥。
这篇文章主要讲的是怎么在 Linux 系统里实现 SSH 安全免密登录的过程。详细的内容您请看下面。
一、登录Linux客户端
1.SSH登录客户端
2.查看SSH帮助信息
二、SSH登录环境介绍
1.SSH服务端
Linux服务器DNSserver,服务器已经安装了SSH服务端软件。
执行指令# systemctl stauts sshd检查服务端是否已经启动
2.SSH客户端
Linux服务器EXTserver,服务器已经安装了SSH客户端软件。执行指令# ssh 服务端IP 查看是否可以访问。
备注:上述界面提示需要输入密码才能登录。
三、SSH安全免密登录
1.RSA非对称密钥介绍
(1) RSA非对称加密算法
(2) SSH密钥对登录步骤
2.SSH客户端生成非对称密钥
(1)登录客户端
(2)生成非对称密钥对
执行指令# ssh-keygen -t rsa生成RSA非对称密钥对
(3)检查生成的RSA密钥对
备注:执行指令后发现当前目录下多出两个文件,id_rsa和 id_rsa.pub,其中id_rsa是客户端使用的私钥,id_rsa.pub这个是服务端使用的公钥。
3.SSH客户端将公钥拷贝到服务端
说明:按照 OpenSSH 的规定,用户的公钥是保存在服务器/.ssh/authorized_keys 文件里。只要把公钥添加到这个文件里面,那就相当于公钥上传到服务器。每个公钥得占一行。要是这个文件不存在,可以手动创建。
(1)客户端EXtserver的公钥copy到服务端DNSserver指定位置
执行指令# cat ~/.ssh/id_rsa.pub | ssh root@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
(2)服务端DNSserver查看生成的authorized_keys文件
4.SSH免密登录测试
说明:SSH免密登录的安全性依赖于私钥,需要注意保护私钥文件(id_rsa)不会被未经授权的用户访问。如果发现私钥文件丢失或被盗,必须立即生成新的密钥对并更新所有相关服务器的authorized_keys文件。
执行指令# ssh 服务端IP