使用密钥文件 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. 保存配置并尝试连接到服务器。

相关推荐
_.Switch4 分钟前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410835 分钟前
文件系统和日志管理
linux·运维·服务器
JokerSZ.9 分钟前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-039 分钟前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代41 分钟前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方2 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘2 小时前
NFS服务器
运维·服务器
弗锐土豆2 小时前
Windows系统中Oracle VM VirtualBox的安装
windows·虚拟机·virtualbox
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花3 小时前
【JAVA基础】Java集合基础
java·开发语言·windows