ubuntu服务器配置私钥登录

使用公钥和私钥登录 SSH 是一种比密码更安全、更便捷的身份验证方式。下面是为您整理的详细操作流程。

🔑 生成密钥对

首先,在您的本地计算机上生成一对密钥(公钥和私钥)。

  1. 打开终端,执行以下命令:

    bash 复制代码
    ssh-keygen -t rsa -b 4096
    • -t rsa 指定密钥类型为 RSA。
    • -b 4096 指定密钥长度为 4096 位,安全性更高。
  2. 系统会提示您:

    • Enter file in which to save the key:按回车键使用默认路径即可(通常是 ~/.ssh/id_rsa)。
    • Enter passphrase强烈建议为私钥设置一个"密码短语"。这能为私钥增加一层重要保护,即使私钥文件不慎泄露,对方也无法直接使用。

命令执行成功后,您会在 ~/.ssh/ 目录下得到两个文件:id_rsa(私钥)id_rsa.pub(公钥)。私钥是你的身份证明,必须妥善保管,绝不外传;公钥则可以放心地放到任何你需要登录的服务器上。

📤 将公钥上传至服务器

接下来,需要将公钥部署到您想登录的远程服务器上。

推荐使用 ssh-copy-id 命令,这是最简便的方法:

bash 复制代码
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip_address

系统会提示您输入一次服务器用户的密码,验证成功后公钥会自动追加到服务器对应用户家目录下的 ~/.ssh/authorized_keys 文件中。

如果无法使用 ssh-copy-id,可以手动复制:

  1. id_rsa.pub 文件内容拷贝到剪贴板。

  2. 登录服务器,编辑或创建 ~/.ssh/authorized_keys 文件。

  3. 将公钥内容粘贴到新的一行。

  4. 至关重要的一步 :设置正确的文件权限,否则 SSH 服务器会拒绝认可该密钥:

    bash 复制代码
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

⚙️ 配置服务器 SSH

为使服务器接受密钥登录,需要确保其 SSH 服务配置正确。

  1. 编辑服务器上的 SSH 配置文件:

    bash 复制代码
    sudo nano /etc/ssh/sshd_config
  2. 确认或修改以下行,确保它们为 yes

    复制代码
    PubkeyAuthentication yes
    # RSAAuthentication yes  # 对于较新版本的 OpenSSH,通常不需要这一行
  3. (可选但强烈推荐)确认能通过密钥登录成功后 ,可以禁用密码登录以极大提升安全性:

    复制代码
    PasswordAuthentication no
  4. 保存文件后,重启 SSH 服务使配置生效:

    bash 复制代码
    sudo systemctl restart sshd

🖥️ 使用私钥登录

完成以上设置后,您就可以使用私钥登录了。

  • 在 Linux 或 macOS 上 :SSH 客户端通常会自动使用 ~/.ssh/id_rsa 这个默认私钥。只需直接连接即可,如果设置了密码短语,会提示您输入:

    bash 复制代码
    ssh username@server_ip_address
  • 如果需要指定其他私钥文件 ,使用 -i 参数:

    bash 复制代码
    ssh -i /path/to/your/private_key username@server_ip_address
  • 在 Windows 上 :使用 PuTTY 等工具时,需要用 PuTTYgen 工具将私钥转换为 .ppk 格式,然后在连接设置中指定该私钥文件。

🛡️ 增强安全性建议

为了进一步提升安全级别,可以考虑:

  • 禁用 root 用户直接通过 SSH 登录
    /etc/ssh/sshd_config 中设置:

    复制代码
    PermitRootLogin no
  • 考虑修改默认的 SSH 端口 :将 Port 22 改为一个非标准端口,可以减少自动化攻击脚本的骚扰。

  • 使用 Fail2ban 等工具:它可以自动屏蔽多次尝试登录失败的 IP 地址。

完成这些步骤后,您的 SSH 登录方式就变得更加安全可靠了。如果在配置过程中遇到任何问题,例如权限设置或配置文件修改,可以随时提问。

相关推荐
雪碧聊技术1 小时前
使用Docker,将fastApi项目部署到linux服务器
服务器·docker·fastapi·docker部署fastapi
叮咚侠1 小时前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
故乡dee云1 小时前
华为云国际服务器连不上怎么办?安全组、端口、IP 和网络排查方法
服务器·网络·华为云
佳児素花痴╮2 小时前
服务器模型、网络调试工具、网络协议头分析
服务器·网络·网络协议
左手厨刀右手茼蒿4 小时前
数据仓库的架构演进:从MySQL到ClickHouse到数据湖的工程化实践
linux·嵌入式·系统内核
左手厨刀右手茼蒿4 小时前
创业团队技术选型:别用大厂架构解决小团队问题
linux·嵌入式·系统内核
明志数科4 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
Data_Journal4 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
bosins5 小时前
将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中
linux·windows·ubuntu
AC赳赳老秦5 小时前
语义采集进阶实战:利用 OpenClaw AI 语义识别自动提取网页核心信息,无需手动编写选择器
java·运维·服务器·python·信息可视化·deepseek·openclaw