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

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

相关推荐
九硕智慧建筑一体化厂家5 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
刘某的Cloud6 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
神奇霸王龙8 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
cfm_29148 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
迪康Defender9 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
HiDev_10 小时前
【非标自动化】2、认识元器件(固态继电器)
运维·自动化
明达智控技术10 小时前
国产 PLC 落地立库自动化,MC5000边缘智能控制器破局
运维·自动化
小绫网络安全11 小时前
Kali Linux渗透测试入门教程:从零搭建到实战攻防
linux·运维·服务器
allforgood11 小时前
控制启动过程
linux·运维·服务器
西安景驰电子11 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php