通过命令行使用密钥登录远程SSH主机

通过命令行使用密钥登录远程SSH主机的步骤如下:


1. 生成SSH密钥对(客户端)

在本地终端执行以下命令生成密钥对(默认保存路径为~/.ssh/id_rsa):

bash 复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"  # 推荐ed25519算法(兼容性更好)
# 若服务器较旧,改用RSA算法:ssh-keygen -t rsa -b 4096
  • 按提示选择保存路径(默认即可),可设置密钥锁码(可选)。
  • 生成的文件:
    • id_ed25519(私钥):需严格保密。
    • id_ed25519.pub(公钥):需上传至服务器。

2. 将公钥上传至服务器

方法一:自动上传(推荐)
bash 复制代码
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip

输入服务器密码后,公钥会自动追加到服务器的~/.ssh/authorized_keys文件中。

方法二:手动上传
  1. 复制公钥内容:

    bash 复制代码
    cat ~/.ssh/id_ed25519.pub  # 查看并复制公钥
  2. 登录服务器并操作:

    bash 复制代码
    ssh username@server_ip
    mkdir -p ~/.ssh
    echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
    chmod 700 ~/.ssh  # 设置目录权限
    chmod 600 ~/.ssh/authorized_keys  # 设置文件权限

3. 配置SSH客户端使用密钥

在本地~/.ssh/config文件中添加以下配置(可选):

bash 复制代码
Host myserver
  HostName server_ip
  User username
  Port 22          # 若非默认端口需修改
  IdentityFile ~/.ssh/id_ed25519  # 私钥路径

配置后,直接执行ssh myserver即可登录。


4. 通过命令行直接登录

使用以下命令指定私钥文件:

bash 复制代码
ssh -i ~/.ssh/id_ed25519 username@server_ip -p port_number
  • -i:指定私钥路径。
  • -p:若服务器SSH端口非默认22,需指定端口号。

5. 服务器端SSH配置(可选)

为提升安全性,建议在服务器修改/etc/ssh/sshd_config

bash 复制代码
PubkeyAuthentication yes    # 启用公钥认证
PasswordAuthentication no   # 关闭密码登录(可选)
PermitRootLogin yes         # 允许root登录(按需设置)

修改后重启SSH服务:

bash 复制代码
sudo systemctl restart sshd  # Ubuntu/Debian
sudo service ssh restart     # CentOS/RHEL

通过SSH在TRAE里面访问远程主机:参见

常见问题排查

  • 权限错误 :确保服务器.ssh目录权限为700authorized_keys600
  • 密钥不匹配:检查公钥是否完整复制,或重新生成密钥对。
  • SELinux拦截 :执行restorecon -Rv ~/.ssh修复(仅CentOS)。

通过以上步骤,即可实现基于密钥的无密码登录,提升远程连接的安全性。

相关推荐
前端世界11 分钟前
基于 Linux 的本地 AI 智能问答平台搭建实践 —— Ollama + FastAPI + Nginx 实现本地大模型 Web 服务
linux·运维·人工智能
山岚的运维笔记23 分钟前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
代码方舟1 小时前
O2O二手车交易平台B端车商管理后台:基于天远车信盟出险构建自动化车况评估网关
java·运维·人工智能·自动化
数智启示录1 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
云登指纹浏览器1 小时前
RPA 与指纹浏览器集成:多账号自动化运营的5项环境配置
运维·自动化·rpa
wtblszn2 小时前
城市内河在线监测系统方案
运维·物联网
Le_ee2 小时前
科来流量分析/结合MCP自动化
运维·自动化
发光的沙子3 小时前
嵌入式系统架构师----Ubuntu如何安装不在列表内的软件?
linux·运维·ubuntu
C+ 安口木3 小时前
Alibaba Cloud Linux 3 服务器环境搭建实战记录
linux·运维·服务器
迪康Defender3 小时前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全