如何在Linux中配置SSH密钥 Linux免密码认证设置

发布时间 - 2025-08-27 00:00:00    点击率:
配置SSH密钥免密码登录需三步:首先在本地运行ssh-keygen -t rsa -b 2048生成密钥对,私钥id_rsa保存于~/.ssh/,公钥id_rsa.pub用于后续配置;然后通过ssh-copy-id user@192.168.1.100将公钥复制到远程服务器的~/.ssh/authorized_keys文件中,若无该命令可手动执行cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"完成复制;最后确保远程服务器~/.ssh目录权限为700,authorized_keys文件权限为600,使用chmod命令设置即可,完成后即可实现免密登录。

在Linux中配置SSH密钥实现免密码登录,可以提升远程访问的安全性和效率。核心步骤包括生成密钥对、将公钥复制到目标服务器、并确保权限设置正确。只要完成配置,就可以直接登录远程主机而无需每次输入密码。

生成SSH密钥对

本地机器上需要先生成一对SSH密钥(私钥和公钥)。使用ssh-keygen命令即可完成:

ssh-keygen -t rsa -b 2048

执行后会提示你选择保存路径(默认是~/.ssh/id_rsa),也可以设置密钥密码(可选)。如果只是用于免密登录且信任本地环境,可直接回车跳过密码设置。

完成后会在~/.ssh/目录下生成两个文件:

  • id_rsa:私钥,保存在本地,不能泄露
  • id_rsa.pub:公钥,需要复制到远程服务器

将公钥复制到远程服务器

把本地生成的公钥内容添加到远程主机的~/.ssh/authorized_keys文件中。最简单的方法是使用SSH自带的复制工具:

ssh-copy-id username@server_ip

例如:

ssh-copy-id user@192.168.1.100

系统会提示你输入一次远程用户的密码。验证通过后,公钥会自动追加到远程主机的authorized_keys文件中。

如果没有ssh-copy-id命令,可以手动复制:

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

设置正确的文件权限

SSH对文件权限要求严格,权限不正确会导致密钥认证失败。在远程服务器上确保以下设置:

  • ~/.ssh目录权限应为700:chmod 700 ~/.ssh
  • ~/.ssh/authorized_keys文件权限应为600:chmod 600 ~/.ssh/authorized_keys

测试免密码登录

配置完成后,尝试通过SSH连接远程主机:

ssh username@server_ip

如果一切正常,将直接登录,不再提示输入密码。

若仍需输入密码,可检查远程服务器的SSH配置文件/etc/ssh/sshd_config,确认以下参数已启用:

  • PubkeyAuthentication yes
  • AuthorizedKeysFile .ssh/authorized_keys

修改后需重启SSH服务:sudo systemctl restart sshd

基本上就这些。配置一次,长期受益。注意保护好本地私钥文件,避免丢失或泄露。


# linux  # 工具  # copy  # ssh  # 公钥  # 输入密码  # 完成后  # 会在  # 如果没有  # 可选  # 自带  # 可直接  # 后会  # 重启 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用低价快速搭建高质量网站?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  ,在苏州找工作,上哪个网站比较好?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何在新浪SAE免费搭建个人博客?  如何构建满足综合性能需求的优质建站方案?  iOS UIView常见属性方法小结  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  制作公司内部网站有哪些,内网如何建网站?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel Fortify是什么,和Jetstream有什么关系  jQuery中的100个技巧汇总  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Python数据仓库与ETL构建实战_Airflow调度流程详解  Bootstrap CSS布局之列表  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  java ZXing生成二维码及条码实例分享  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel Session怎么存储_Laravel Session驱动配置详解  如何快速生成高效建站系统源代码?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  如何在搬瓦工VPS快速搭建网站?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Android中AutoCompleteTextView自动提示  PHP正则匹配日期和时间(时间戳转换)的实例代码  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Android滚轮选择时间控件使用详解  浅谈Javascript中的Label语句  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  微信h5制作网站有哪些,免费微信H5页面制作工具?  LinuxShell函数封装方法_脚本复用设计思路【教程】  EditPlus中的正则表达式 实战(2)  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  手机网站制作与建设方案,手机网站如何建设?  php打包exe后无法访问网络共享_共享权限设置方法【教程】