使用密钥文件 SSH 登录服务器:Windows、macOS使用终端或连接工具


文章目录

  • [使用密钥文件 SSH 登录服务器](#使用密钥文件 SSH 登录服务器)
    • [1. Windows端](#1. Windows端)
      • [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用 ssh 命令指定密钥文件)
      • [方法 2:使用 SSH 配置文件](#方法 2:使用 SSH 配置文件)
    • [2. macOS端](#2. macOS端)
      • [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用 ssh 命令指定密钥文件)
      • [方法 2:使用 SSH 配置文件](#方法 2:使用 SSH 配置文件)
      • [方法 3:使用 `ssh-add` 命令(可选)](#方法 3:使用 ssh-add 命令(可选))
    • [3. 在多平台使用连接工具](#3. 在多平台使用连接工具)
      • [使用 MobaXterm 指定私钥文件](#使用 MobaXterm 指定私钥文件)
      • [使用 Tabby 指定密钥文件](#使用 Tabby 指定密钥文件)
      • 使用其他工具的通用方法

使用密钥文件 SSH 登录服务器

1. Windows端

在 Windows 上,可以通过指定存放在本地的私钥文件,来实现免密码登录服务器。

方法 1:使用 ssh 命令指定密钥文件

  1. 打开 PowerShell 或命令提示符
    • 在 Windows 上,可以使用 PowerShell 或命令提示符(CMD)来运行 SSH 命令。
  2. 使用 i 参数指定私钥文件
    • 当连接到服务器时,可以使用 i 参数指定私钥文件的位置。例如,如果私钥文件存储在 C:\\Users\\YourUsername\\.ssh\\id_rsa,使用以下命令:

      bash 复制代码
      ssh -i C:\\Users\\YourUsername\\.ssh\\id_rsa user@server_ip
    • 使用指定的私钥文件 id_rsa 来登录服务器 server_ip,并且如果公钥已经在服务器的 authorized_keys 文件中配置好,就可以实现免密码登录。

方法 2:使用 SSH 配置文件

  1. 创建或编辑 SSH 配置文件
    • C:\\Users\\YourUsername\\.ssh 目录下创建一个名为 config 的文件,如果这个文件已存在,可直接编辑。
  2. 添加配置项
    • config 文件中,指定特定服务器的配置,包括使用哪个私钥文件。例如:

      复制代码
      Host myserver
          HostName server_ip
          User user
          IdentityFile C:\\Users\\YourUsername\\.ssh\\id_rsa
    • 使用以下命令登录服务器,不必每次都指定密钥文件路径:

      bash 复制代码
      ssh myserver

2. macOS端

在 macOS 上,通过指定存放在本地的私钥文件,实现免密码登录服务器。方法和 Windows 类似,主要是通过 ssh 命令或配置 SSH 配置文件来完成。

方法 1:使用 ssh 命令指定密钥文件

  1. 打开终端
    • 在 macOS 上,可使用终端(Terminal)来运行 SSH 命令。终端可以通过 Spotlight 搜索 "Terminal" 来启动。
  2. 使用 i 参数指定私钥文件
    • 当连接到服务器时,可以使用 i 参数指定私钥文件的位置。例如,如果私钥文件存储在 ~/.ssh/id_rsa,可以使用以下命令:

      bash 复制代码
      ssh -i ~/.ssh/id_rsa user@server_ip
    • 这条命令会使用指定的私钥文件 id_rsa 来登录服务器 server_ip,并且如果公钥已经在服务器的 authorized_keys 文件中配置好,就可以实现免密码登录。

方法 2:使用 SSH 配置文件

  1. 创建或编辑 SSH 配置文件
    • ~/.ssh 目录下创建一个名为 config 的文件,如果这个文件已经存在,可以直接编辑。
  2. 添加配置项
    • config 文件中,可以指定特定服务器的配置,包括使用哪个私钥文件。例如:

      复制代码
      Host myserver
          HostName server_ip
          User user
          IdentityFile ~/.ssh/id_rsa
    • 此时即可以使用以下命令来登录服务器,而不必每次都指定密钥文件路径:

      bash 复制代码
      ssh myserver

方法 3:使用 ssh-add 命令(可选)

如果在多个 SSH 会话中使用相同的私钥文件,而不必每次都输入 -i 参数,可以使用 ssh-add 命令将私钥加载到 SSH 代理中:

  1. 启动 SSH 代理(如果尚未启动):

    bash 复制代码
    eval "$(ssh-agent -s)"
  2. 将私钥添加到 SSH 代理

    bash 复制代码
    ssh-add ~/.ssh/id_rsa
    • 将允许在当前终端会话中使用私钥文件登录到服务器,而无需每次都指定 i 参数。

3. 在多平台使用连接工具

使用 MobaXterm 指定私钥文件

步骤 1:启动 MobaXterm 并创建新的 SSH 会话

  1. 打开 MobaXterm
    • 启动 MobaXterm 应用程序。
  2. 创建新的 SSH 会话
    • 在 MobaXterm 的主界面上,点击左上角的 "Session" 按钮来创建一个新的会话。
    • 在弹出的会话类型窗口中,选择 "SSH"。

步骤 2:配置 SSH 连接信息

  1. 输入远程服务器的 IP 地址或主机名
    • 在 "Remote host" 字段中,输入要连接的服务器的 IP 地址或主机名。
  2. 输入用户名
    • 在 "Specify username" 字段中,输入远程服务器上使用的用户名。

步骤 3:指定私钥文件

  1. 选择密钥文件
    • 在会话配置窗口的 "Advanced SSH settings" 选项卡下,找到 "Use private key" 选项。
    • 勾选 "Use private key" 复选框,然后点击右边的浏览按钮(文件夹图标)来选择存储在本地的私钥文件。例如,选择 C:\\Users\\YourUsername\\.ssh\\id_rsa
  2. 保存会话配置
    • 配置完成后,点击 "OK" 保存 SSH 会话配置。

步骤 5:连接到远程服务器

  1. 双击刚刚创建的会话
    • 在 MobaXterm 的主界面上,左侧的会话列表中会显示刚刚创建的 SSH 会话。
    • 双击该会话,MobaXterm 会自动使用指定的私钥文件连接到远程服务器。
  2. 免密码登录
    • 如果公钥已经在服务器的 ~/.ssh/authorized_keys 文件中配置好,并且私钥没有设置额外的 passphrase,那么将直接登录到服务器而不需要输入密码。

注意事项

  • 如果私钥文件设置了 passphrase,第一次连接时需要输入 passphrase。如果希望在多个会话中避免重复输入,可以使用 MobaXterm 内置的密钥代理功能。
  • 可保存多个 SSH 会话,每个会话可使用不同的私钥文件。

使用 Tabby 指定密钥文件

  1. 下载和安装 Tabby
  2. 配置 SSH 会话
    • 打开 Tabby 并创建一个新的 SSH 会话。
    • 在会话配置页面,输入服务器的 IP 地址、用户名等信息。
  3. 指定密钥文件
    • 在 SSH 会话配置中,有个选项可以指定私钥文件。
    • 选择本地存储的私钥文件路径(如 ~/.ssh/id_rsa)。
  4. 保存配置并连接
    • 保存配置后,直接连接到服务器。Tabby 将使用指定的私钥文件进行身份验证,从而实现免密码登录。

使用其他工具的通用方法

多数 SSH 客户端工具都有类似的功能,具体步骤无非以下大差不差:

  1. 创建或编辑连接配置
  2. 指定用户名、服务器地址等基本信息
  3. 指定私钥文件路径,通过文件浏览器或直接输入路径的方式。
  4. 保存配置并尝试连接到服务器。

相关推荐
AlfredZhao1 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
counterxing2 天前
最近发现一个 Mac 工具,有点像把 Raycast、语音输入法、截图和录屏塞到了一起
macos·ai编程·claude
戴为沐2 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698033 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297913 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计