在使用Linux服务器时,频繁输入密码不仅麻烦,还存在安全隐患。通过SSH密钥认证可以实现安全、便捷的免密登录。本文将详细讲解如何在RockyLinux系统中使用
ssh-copy-id命令快速复制SSH公钥到远程服务器,实现一键免密登录。即使你是Linux新手,也能轻松上手!
什么是 ssh-copy-id?
ssh-copy-id是一个非常实用的命令行工具,用于将本地用户的SSH公钥自动复制到远程服务器的
~/.ssh/authorized_keys文件中。一旦完成此操作,你就可以无需密码直接通过SSH登录目标服务器。
前提条件
本地计算机已安装OpenSSH客户端(大多数Linux和macOS系统默认包含) 远程RockyLinux服务器已启用SSH服务(通常默认开启) 你拥有远程服务器的用户名和密码(仅首次使用需要)步骤一:生成SSH密钥对(如尚未生成)
如果你还没有SSH密钥对,请在本地终端执行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
系统会提示你选择保存位置(直接回车使用默认路径
~/.ssh/id_rsa)和设置密码(passphrase,可选)。完成后,你的公钥将保存在
~/.ssh/id_rsa.pub中。
步骤二:使用 ssh-copy-id 复制公钥到RockyLinux服务器
假设你的远程服务器IP为
192.168.1.100,用户名为
rockyuser,执行以下命令:
ssh-copy-id rockyuser@192.168.1.100
系统会提示你输入远程用户的密码。输入正确密码后,
ssh-copy-id会自动将你的公钥追加到远程服务器的
~/.ssh/authorized_keys文件中。
如果SSH端口不是默认的22,比如是2222,可以使用
-p参数指定端口:
ssh-copy-id -p 2222 rockyuser@192.168.1.100
步骤三:测试免密登录
现在尝试SSH登录远程RockyLinux服务器:
ssh rockyuser@192.168.1.100
如果一切正常,你将无需输入密码即可成功登录!这说明SSH密钥复制已成功完成。
常见问题与解决方法
提示“Permission denied (publickey)”:请确认远程服务器的/etc/ssh/sshd_config中启用了
PubkeyAuthentication yes,并重启SSH服务:
sudo systemctl restart sshd。 ssh-copy-id 命令未找到:在某些最小化安装的系统中可能未预装该工具。可在RockyLinux中通过
sudo dnf install openssh-clients安装。 远程目录权限问题:确保远程用户的
~/.ssh目录权限为700,
authorized_keys文件权限为600。
总结
通过使用
ssh-copy-id命令,你可以轻松实现RockyLinux安全远程登录,大幅提升运维效率并增强系统安全性。掌握这项技能,是迈向专业Linux管理的重要一步。希望本教程能帮助你顺利完成RockyLinux ssh-copy-id配置,享受无密码登录的便捷体验!
关键词回顾:RockyLinux ssh-copy-id、SSH密钥复制、免密登录Linux、RockyLinux安全远程登录
