登录
首页 >  文章 >  php教程

宝塔SSH公钥设置与免密登录教程

时间:2026-05-27 19:43:42 198浏览 收藏

本文详细讲解了如何在宝塔面板环境下绕过Web终端限制,安全、高效地配置SSH公钥认证以实现服务器免密登录,涵盖四种实用方法:通过文件管理器图形化上传并设置authorized_keys权限、使用宝塔终端执行命令部署密钥并验证sshd配置、借助计划任务批量同步公钥提升多机管理效率,以及在配置异常时利用系统快照精准还原sshd_config关键参数——无论你是Linux新手还是运维老手,都能找到适配自身场景的可靠方案,轻松提升服务器访问安全性与操作便捷性。

宝塔面板下如何管理服务器的SSH公钥实现免密登录?

如果您在宝塔面板中希望为服务器配置SSH公钥认证以实现免密登录,则需绕过面板默认的Web终端限制,直接操作系统级SSH配置文件。以下是具体实施步骤:

一、通过宝塔文件管理器上传并配置authorized_keys

该方法利用宝塔内置的文件管理功能,将本地生成的公钥内容写入目标用户的授权密钥文件,无需命令行交互,适合不熟悉Linux终端操作的用户。

1、在本地电脑使用ssh-keygen生成密钥对,保留私钥(如id_rsa)并复制公钥内容(如id_rsa.pub中的全部文本)。

2、登录宝塔面板,进入【文件】→【/root】目录(若为非root用户,请进入对应用户的家目录,如/home/www)。

3、检查是否存在.ssh隐藏目录,若不存在,则点击右上角【新建目录】,输入.ssh并创建。

4、进入.ssh目录,点击【新建文件】,命名为authorized_keys

5、点击该文件进入编辑界面,将本地复制的公钥内容完整粘贴进去,确保无换行缺失或多余空格,保存更改。

6、返回.ssh目录,选中authorized_keys文件,点击【权限】,设置权限值为600;再选中.ssh目录本身,设置权限值为700

二、通过宝塔终端执行命令配置公钥

该方法适用于已开启宝塔终端且具备sudo权限的场景,通过标准Linux命令完成密钥部署,过程可控性强,能即时验证路径与权限状态。

1、在宝塔面板中打开【终端】,确认当前用户为root或具有sudo权限的用户。

2、执行命令创建SSH目录:mkdir -p ~/.ssh

3、执行命令设置目录权限:chmod 700 ~/.ssh

4、执行命令生成空白authorized_keys文件并写入公钥(假设公钥内容已复制到剪贴板):echo "your_public_key_content_here" >> ~/.ssh/authorized_keys(请将your_public_key_content_here替换为实际公钥字符串,含ssh-rsa开头部分)。

5、执行命令设置密钥文件权限:chmod 600 ~/.ssh/authorized_keys

6、执行命令检查sshd服务配置是否允许公钥认证:grep -E '^(PubkeyAuthentication|AuthorizedKeysFile)' /etc/ssh/sshd_config,确认输出中包含PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys

三、使用宝塔计划任务自动同步公钥

该方法适用于多台服务器统一管理场景,通过定时任务将预置公钥文件同步至各主机的对应位置,避免逐台手工操作,提升批量部署效率。

1、在宝塔面板中进入【计划任务】→【添加计划任务】。

2、任务类型选择Shell脚本,执行周期设为一次性立即执行(后续可按需调整)。

3、在脚本内容框中输入以下命令(请预先将公钥内容存为/root/mykey.pub):mkdir -p /root/.ssh && cp /root/mykey.pub /root/.ssh/authorized_keys && chmod 700 /root/.ssh && chmod 600 /root/.ssh/authorized_keys

4、点击【添加任务】,然后在任务列表中找到该项,点击【运行】按钮触发执行。

5、执行完成后,在终端中运行ls -l /root/.ssh/authorized_keys,确认文件存在且权限显示为-rw-------

四、通过宝塔数据库管理间接注入公钥配置

该方法仅限特殊场景:当SSH服务被误关闭且无法通过常规方式恢复时,可借助宝塔备份的系统配置快照还原关键SSH配置片段,其中可能包含已启用的公钥路径定义。

1、进入宝塔面板【备份】→【系统快照】,查找最近一次包含/etc/ssh/sshd_config变更的快照记录。

2、点击该快照右侧【还原】,在弹出窗口中勾选/etc/ssh/sshd_config单项,取消其他所有选项。

3、确认还原操作,等待进度条完成。

4、还原后立即在终端中执行:systemctl restart sshd,确保新配置加载生效。

5、再次运行:grep PubkeyAuthentication /etc/ssh/sshd_config,验证输出是否为PubkeyAuthentication yes

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>