文章目录
- [使用密钥文件 SSH 登录服务器](#使用密钥文件 SSH 登录服务器)
-
- [1. Windows端](#1. Windows端)
-
- [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用
ssh
命令指定密钥文件) - [方法 2:使用 SSH 配置文件](#方法 2:使用 SSH 配置文件)
- [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用
- [2. macOS端](#2. macOS端)
-
- [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用
ssh
命令指定密钥文件) - [方法 2:使用 SSH 配置文件](#方法 2:使用 SSH 配置文件)
- [方法 3:使用 `ssh-add` 命令(可选)](#方法 3:使用
ssh-add
命令(可选))
- [方法 1:使用 `ssh` 命令指定密钥文件](#方法 1:使用
- [3. 在多平台使用连接工具](#3. 在多平台使用连接工具)
-
- [使用 MobaXterm 指定私钥文件](#使用 MobaXterm 指定私钥文件)
- [使用 Tabby 指定密钥文件](#使用 Tabby 指定密钥文件)
- 使用其他工具的通用方法
使用密钥文件 SSH 登录服务器
1. Windows端
在 Windows 上,可以通过指定存放在本地的私钥文件,来实现免密码登录服务器。
方法 1:使用 ssh
命令指定密钥文件
- 打开 PowerShell 或命令提示符 :
- 在 Windows 上,可以使用 PowerShell 或命令提示符(CMD)来运行 SSH 命令。
- 使用
i
参数指定私钥文件 :-
当连接到服务器时,可以使用
i
参数指定私钥文件的位置。例如,如果私钥文件存储在C:\\Users\\YourUsername\\.ssh\\id_rsa
,使用以下命令:bashssh -i C:\\Users\\YourUsername\\.ssh\\id_rsa user@server_ip
-
使用指定的私钥文件
id_rsa
来登录服务器server_ip
,并且如果公钥已经在服务器的authorized_keys
文件中配置好,就可以实现免密码登录。
-
方法 2:使用 SSH 配置文件
- 创建或编辑 SSH 配置文件 :
- 在
C:\\Users\\YourUsername\\.ssh
目录下创建一个名为config
的文件,如果这个文件已存在,可直接编辑。
- 在
- 添加配置项 :
-
在
config
文件中,指定特定服务器的配置,包括使用哪个私钥文件。例如:Host myserver HostName server_ip User user IdentityFile C:\\Users\\YourUsername\\.ssh\\id_rsa
-
使用以下命令登录服务器,不必每次都指定密钥文件路径:
bashssh myserver
-
2. macOS端
在 macOS 上,通过指定存放在本地的私钥文件,实现免密码登录服务器。方法和 Windows 类似,主要是通过 ssh
命令或配置 SSH 配置文件来完成。
方法 1:使用 ssh
命令指定密钥文件
- 打开终端 :
- 在 macOS 上,可使用终端(Terminal)来运行 SSH 命令。终端可以通过 Spotlight 搜索 "Terminal" 来启动。
- 使用
i
参数指定私钥文件 :-
当连接到服务器时,可以使用
i
参数指定私钥文件的位置。例如,如果私钥文件存储在~/.ssh/id_rsa
,可以使用以下命令:bashssh -i ~/.ssh/id_rsa user@server_ip
-
这条命令会使用指定的私钥文件
id_rsa
来登录服务器server_ip
,并且如果公钥已经在服务器的authorized_keys
文件中配置好,就可以实现免密码登录。
-
方法 2:使用 SSH 配置文件
- 创建或编辑 SSH 配置文件 :
- 在
~/.ssh
目录下创建一个名为config
的文件,如果这个文件已经存在,可以直接编辑。
- 在
- 添加配置项 :
-
在
config
文件中,可以指定特定服务器的配置,包括使用哪个私钥文件。例如:Host myserver HostName server_ip User user IdentityFile ~/.ssh/id_rsa
-
此时即可以使用以下命令来登录服务器,而不必每次都指定密钥文件路径:
bashssh myserver
-
方法 3:使用 ssh-add
命令(可选)
如果在多个 SSH 会话中使用相同的私钥文件,而不必每次都输入 -i
参数,可以使用 ssh-add
命令将私钥加载到 SSH 代理中:
-
启动 SSH 代理(如果尚未启动):
basheval "$(ssh-agent -s)"
-
将私钥添加到 SSH 代理:
bashssh-add ~/.ssh/id_rsa
- 将允许在当前终端会话中使用私钥文件登录到服务器,而无需每次都指定
i
参数。
- 将允许在当前终端会话中使用私钥文件登录到服务器,而无需每次都指定
3. 在多平台使用连接工具
使用 MobaXterm 指定私钥文件
步骤 1:启动 MobaXterm 并创建新的 SSH 会话
- 打开 MobaXterm :
- 启动 MobaXterm 应用程序。
- 创建新的 SSH 会话 :
- 在 MobaXterm 的主界面上,点击左上角的 "Session" 按钮来创建一个新的会话。
- 在弹出的会话类型窗口中,选择 "SSH"。
步骤 2:配置 SSH 连接信息
- 输入远程服务器的 IP 地址或主机名 :
- 在 "Remote host" 字段中,输入要连接的服务器的 IP 地址或主机名。
- 输入用户名 :
- 在 "Specify username" 字段中,输入远程服务器上使用的用户名。
步骤 3:指定私钥文件
- 选择密钥文件 :
- 在会话配置窗口的 "Advanced SSH settings" 选项卡下,找到 "Use private key" 选项。
- 勾选 "Use private key" 复选框,然后点击右边的浏览按钮(文件夹图标)来选择存储在本地的私钥文件。例如,选择
C:\\Users\\YourUsername\\.ssh\\id_rsa
。
- 保存会话配置 :
- 配置完成后,点击 "OK" 保存 SSH 会话配置。
步骤 5:连接到远程服务器
- 双击刚刚创建的会话 :
- 在 MobaXterm 的主界面上,左侧的会话列表中会显示刚刚创建的 SSH 会话。
- 双击该会话,MobaXterm 会自动使用指定的私钥文件连接到远程服务器。
- 免密码登录 :
- 如果公钥已经在服务器的
~/.ssh/authorized_keys
文件中配置好,并且私钥没有设置额外的 passphrase,那么将直接登录到服务器而不需要输入密码。
- 如果公钥已经在服务器的
注意事项
- 如果私钥文件设置了 passphrase,第一次连接时需要输入 passphrase。如果希望在多个会话中避免重复输入,可以使用 MobaXterm 内置的密钥代理功能。
- 可保存多个 SSH 会话,每个会话可使用不同的私钥文件。
使用 Tabby 指定密钥文件
- 下载和安装 Tabby:
- 配置 SSH 会话 :
- 打开 Tabby 并创建一个新的 SSH 会话。
- 在会话配置页面,输入服务器的 IP 地址、用户名等信息。
- 指定密钥文件 :
- 在 SSH 会话配置中,有个选项可以指定私钥文件。
- 选择本地存储的私钥文件路径(如
~/.ssh/id_rsa
)。
- 保存配置并连接 :
- 保存配置后,直接连接到服务器。Tabby 将使用指定的私钥文件进行身份验证,从而实现免密码登录。
使用其他工具的通用方法
多数 SSH 客户端工具都有类似的功能,具体步骤无非以下大差不差:
- 创建或编辑连接配置。
- 指定用户名、服务器地址等基本信息。
- 指定私钥文件路径,通过文件浏览器或直接输入路径的方式。
- 保存配置并尝试连接到服务器。