如何在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
- Authoriz
edKeysFile .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后无法访问网络共享_共享权限设置方法【教程】


edKeysFile .ssh/authorized_keys