用你本地已有的私钥(private key)去 SSH 登录远程 Ubuntu 服务器

用你本地已有的私钥(private key)去 SSH 登录远程 Ubuntu 服务器,而不是输入密码。

正确做法是:把对应的公钥(public key)放到服务器上,而不是直接传私钥。


✅ 一、基本原理

  • 私钥(id_rsaid_ed25519)始终保存在 本地电脑,绝不能上传到服务器。

  • 公钥(id_rsa.pubid_ed25519.pub)复制到服务器的:

    复制代码
    ~/.ssh/authorized_keys

    文件中。

    服务器就能用公钥来验证你的登录请求。


⚙️ 二、具体操作步骤

假设:

  • 远程服务器 IP 是 192.168.1.100
  • 用户名是 ubuntu
  • 你本地已经生成过密钥对(比如在 Windows、Mac 或 WSL 里)

① 检查你本地是否已有 SSH 密钥

bash 复制代码
ls ~/.ssh/

若看到如下文件:

复制代码
id_rsa        id_rsa.pub

复制代码
id_ed25519    id_ed25519.pub

说明你已有密钥。

如果没有,执行:

bash 复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。


② 将本地公钥上传到服务器(推荐命令)

方法 1:自动上传

bash 复制代码
ssh-copy-id ubuntu@192.168.1.100

第一次运行会让你输入服务器密码。

命令执行后,它会自动把你本地的 ~/.ssh/id_*.pub 内容追加到服务器的 ~/.ssh/authorized_keys 文件。


方法 2:手动复制

如果你不能用 ssh-copy-id

  1. 查看你本地公钥:

    bash 复制代码
    cat ~/.ssh/id_ed25519.pub
  2. 复制整行内容(不要有换行)。

  3. 登录服务器:

    bash 复制代码
    ssh ubuntu@192.168.1.100
  4. 在服务器上执行:

    bash 复制代码
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "你的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

③ 验证免密登录

在本地执行:

bash 复制代码
ssh ubuntu@192.168.1.100

如果能直接登录而不再提示输入密码,说明设置成功 ✅。


🧩 三、可选优化

如果你使用多个密钥,可以在 ~/.ssh/config 中指定:

bash 复制代码
Host myserver
    HostName 192.168.1.100
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519

然后你只需:

bash 复制代码
ssh myserver

即可连接。


相关推荐
不仙5201 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
189228048612 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存
AI视觉网奇2 小时前
linux 检索库 判断库是否支持
java·linux·服务器
dapeng-大鹏2 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
一楼的猫3 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
武子康3 小时前
调查研究-138 全球机器人产业深度调研报告【01 篇】:市场规模、竞争格局与商业化成熟 2026
服务器·数据库·ai·chatgpt·机器人·具身智能
xhbh6664 小时前
代理ARP (Proxy ARP) 是如何实现跨网段通信的?在Linux下如何配置?
服务器·网络·智能路由器·端口映射·映射
神奇椰子5 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器
SEO_juper6 小时前
CDN 地域节点优化:匹配 GEO 信号,提升加载速度
服务器·ai·php·seo·cdn·geo·谷歌优化
神奇小梵6 小时前
关于finalshell的使用
linux·服务器·网络