在远程登录Ubuntu系统时,通常采用用户名和密码的方式进行身份验证。然而,这种方式需要反复输入凭证,操作繁琐且存在安全风险。为提升效率与安全性,可改用基于RSA算法的密钥认证机制,实现免密登录,既简化了连接流程,又增强了系统的防护能力,是一种更为高效和安全的远程访问方案。
1、 安装SSH服务程序
2、 在Ubuntu服务器中安装SSH服务
3、 安装方式:
4、 安装后检查SSH服务是否正常启动
5、 验证方式:
6、 在命令行中输入 ssh -V 查看版本信息。
7、 SSH版本验证成功,结果已确认
8、 检查服务器端phenix用户主目录中是否有名为.ssh的隐藏文件夹。
9、 安装SSH后,切换至phenix用户家目录,执行ls -al命令,检查是否存在名为.ssh的隐藏目录。
10、 若存在则操作无误,若不存在则按以下方法处理。
11、 重新安装SSH服务,按步骤一操作即可。
12、 若安装完成后尚未存在.ssh目录,可在家目录中执行 mkdir .ssh 命令,手动创建该目录以确保配置文件的正常存储与使用。
13、 通常情况下,大多数系统在安装SSH服务后会自动创建ssh隐藏目录,仅少数情况需手动建立。
14、 客户端生成公钥与私钥
15、 使用RSA密钥认证可实现从客户端登录服务器时无需输入密码,提高登录效率与安全性。
16、 进行认证前,需先在客户端生成一对密钥,包括公钥和私钥,具体生成方式如下所示。
17、 在命令行中输入并执行 ssh-keygen 命令。
18、 运行时会提示确认公钥保存路径,默认为.ssh/id_rsa。
19、 系统会要求你两次输入密码,若使用公钥时不愿每次输入,可直接留空。
20、 操作完成后,客户端将生成一对密钥数据。
21、 执行流程见下图所示
22、 SSH密钥通常保存在用户家目录的.ssh文件夹内。
23、 关键在于查看是否存在一对以 xxx_rsa 和 xxx_rsa.pub 命名的文件,其中带 .pub 扩展名的是公钥,另一个则为私钥。
24、 公私钥对,顾名思义,一公开一私密。
25、 公钥可公开分享无需保密,私钥则需个人妥善保管并严格保密。
26、 密钥生成结果所示
27、 把客户端公钥加入服务器端认证用的公钥文件中。
28、 首先确认服务器端phenix用户家目录下的隐藏ssh文件夹中,是否包含名为authorized_keys的文件。
29、 如果文件不存在,可通过执行 touch authorized_keys 命令创建一个空文件。
30、 完成创建后,按以下步骤操作即可。
31、 操作流程如下
32、 复制客户端公钥内容到相应位置
33、 将客户端复制的公钥内容粘贴到服务器端新建的 authorized_keys 文件中,并保存该文件即可完成配置。
34、 修改 authorized_keys 文件的访问权限设置
35、 将 authorized_keys 文件权限修改为仅所有者可读写。
36、 客户端公钥内容格式大致如下所示
37、 实例公私钥所示
38、 验证免密登录
39、 在客户端命令行中输入以下指令执行。
40、 通过SSH连接到10.2.31.33的12端口,用户名为phenix,此处SSH服务使用非默认的12端口而非标准的22端口。
41、 成功登录服务器端,表示验证通过。
42、 登录界面所示

