opkssh
是一个结合 OpenID 身份验证和 SSH 连接的工具,它能简化 SSH 密钥的管理,并提升 SSH 连接的安全性。与传统的 SSH 密钥验证方式不同,opkssh
通过 OpenID 身份验证来生成 SSH 密钥,使得用户的身份验证更加灵活与安全。
1. 安装 opkssh
opkssh
可以在 Windows、macOS 和 Linux 系统上使用。下面是详细的安装步骤:
在 Windows 上安装 opkssh
- 打开 PowerShell 或命令提示符。
- 执行以下命令,下载并安装
opkssh
:
curl https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-windows-amd64.exe -o opkssh.exe
- 下载完成后,你将获得
opkssh.exe
文件。你可以将它放在任何你想要的目录下,并通过命令行运行它。
在 macOS 上安装 opkssh
- 打开终端。
- 执行以下命令,下载并安装
opkssh
:
curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-osx-amd64 -o opkssh; chmod +x opkssh
- 这将下载
opkssh
文件并授予执行权限。你可以将其移动到/usr/local/bin/
目录,方便在终端中全局使用。
在 Linux 上安装 opkssh
Linux 系统支持多种架构。根据你的系统架构(x86_64 或 ARM64),选择相应的安装命令。
- 对于 x86_64 架构的 Linux 系统:
curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-linux-amd64 -o opkssh; chmod +x opkssh
- 对于 ARM64 架构的 Linux 系统:
curl -L https://github.com/openpubkey/opkssh/releases/latest/download/opkssh-linux-arm64 -o opkssh; chmod +x opkssh
安装完成后,你可以将 opkssh
文件移动到 /usr/local/bin/
目录,或将其保留在当前目录。
2. 使用 opkssh 进行身份验证与 SSH 登录
安装完成后,你可以开始使用 opkssh
进行身份验证和 SSH 连接。
登录并生成 SSH 密钥
- 在终端或命令行中运行以下命令:
opkssh login
- 该命令将打开一个浏览器窗口,要求你选择一个 OpenID 提供商并完成身份验证。你可以选择 Google、GitHub 等常见的 OpenID 提供商来进行登录。
- 登录成功后,
opkssh
会在你的本地系统中生成一个 SSH 公钥文件,默认位置是~/.ssh/id_ecdsa
。这个密钥对应的是你的 OpenID Token,凭此可以通过 SSH 连接到服务器。
默认 SSH 密钥过期时间
生成的 SSH 密钥默认会在 24 小时后过期。到期后,你需要重新运行 opkssh login
来生成新的密钥。
使用 SSH 登录
一旦密钥生成成功,你可以像使用传统 SSH 密钥一样使用它来登录到远程服务器。执行以下命令:
ssh [email protected]
使用 SFTP 进行文件传输
你还可以使用 opkssh
生成的 SSH 密钥进行 SFTP 文件传输:
sftp [email protected]
3. 自定义 SSH 密钥名称
opkssh
允许你为生成的密钥指定自定义名称,方便管理。
登录时指定自定义密钥名称
如果你希望使用特定名称的密钥,可以在执行 opkssh login
时指定密钥名称:
opkssh login -i opkssh_server_group1
使用自定义密钥进行 SSH 连接
在使用 SSH 时,你可以通过 -i
参数指定自定义的密钥文件。假设你使用了 opkssh_server_group1
作为密钥名称,可以执行以下命令:
ssh -o "IdentitiesOnly=yes" -i ~/.ssh/opkssh_server_group1.pub -i ~/.ssh/opkssh_server_group1 [email protected]
这里的 -o "IdentitiesOnly=yes"
参数会确保 SSH 仅使用指定的密钥进行身份验证,避免使用其他默认密钥进行干扰。
4. 在服务器端安装和配置 opkssh
为了让你的服务器支持使用 opkssh
进行身份验证,你需要在服务器上安装并配置它。
安装 opkssh 在服务器上
- 登录到你的服务器。
- 使用以下命令安装
opkssh
:
wget -qO- "https://raw.githubusercontent.com/openpubkey/opkssh/main/scripts/install-linux.sh" | sudo bash
这条命令会自动下载并安装 opkssh
,并将其放置在 /usr/local/bin/
目录中,同时配置 SSH 服务以支持 opkssh
作为附加的身份验证机制。
允许单个用户使用 opkssh 登录
如果你想允许某个用户(例如 [email protected]
)通过 OpenID 进行身份验证并作为 root
登录到服务器,可以执行以下命令:
sudo opkssh add root [email protected] google
允许用户组使用 opkssh 登录
如果你希望允许某个用户组(例如 ssh-users
)中的所有成员通过 OpenID 进行身份验证并作为 root
登录,可以使用以下命令:
sudo opkssh add root oidc:groups:ssh-users google
发表回复