Linux系统实现SSH安全免密登录的设置与管理
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文件。想要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.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

夜雨聆风