通过命令行使用密钥登录远程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)。

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

相关推荐
日取其半万世不竭1 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器
优化Henry1 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心2 小时前
Linux网络传输层协议
linux·运维·网络
V搜xhliang02462 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
遇见火星2 小时前
Nginx限流配置:防止接口被刷,服务器稳如泰山
运维·服务器·nginx
计算机安禾3 小时前
【Linux从入门到精通】第49篇:服务器故障排查终极指南——思路决定出路
linux·运维·服务器
古月-一个C++方向的小白3 小时前
Linux——初识文件
linux·运维·服务器
北山有鸟3 小时前
编译香橙派内核
linux·运维·服务器
W.A委员会3 小时前
Docker基本使用流程
运维·docker·容器
小此方3 小时前
Re:Linux系统篇(八)权限篇 ·三:深度解析从 umask 位运算到粘滞位的“权力锁”
linux·运维·服务器