一个支持多用户的 ssh 公钥管理器。
你可以在这里下载
编译
make
查看帮助信息
./ssh-auth --help
安装
添加当前目录到环境变量。
echo "export PATH=\"`pwd`:\$PATH\"" >> ~/.bashrc
ssh-auth --version
ssh-auth --help
ssh-auth <command> [<args>]
添加服务时会提示是否在服务器安装守护进程。
安装后,优先使用 http 协议通信,并且守护进程会监听服务器上的文件保证添加的公钥不被删除。
客户端(ssh-auth)会使用生成的私钥对数据签名,保证不会有非法用户通过 http 添加公钥。
ssh-auth user add name [path [path2 [path3 ...]]]
name: 成员名
path, path2, path3, ...: 公钥路径
ssh-auth user show
ssh-auth user rm name [name2 [name3 ...]]]
name, name2, name3, ...: 成员名
ssh-auth server add [-p port] [-P] [-i path] [-n name] [user@]hostname
-p: 服务器端口,默认为 22
-P: 使用密码,密码将会明文保存
-i path: 使用私钥,path 为私钥路径,私钥将会明文保存
-n name: 给服务器设置别名
user: 服务器用户名,默认为当前用户名
hostname: 主机名或 IP 地址
ssh-auth server show
ssh-auth server edit [-p port] [-P] [-i path] [-n newName] <servername|[username@]hostname>
-p: 服务器端口,默认为 22
-P: 使用密码,密码将会明文保存
-i path: 使用私钥,path 为私钥路径,私钥将会明文保存
-n name: 给服务器设置别名
user: 服务器用户名,默认为当前用户名
hostname: 主机名或 IP 地址
ssh-auth server rm <servername|[username@]hostname> [servername|[username@]hostname] ...
servername 服务器别名
username: 服务器用户名,默认为当前用户名
hostname: 主机名或 IP 地址
将会上传该成员的所有公钥到该服务器,成员和服务器关系将会保存。
ssh-auth auth add [-p port] [-P] [-i path] <servername|[username@]hostname> <user> [user2 [user3 ...]]
-p: 服务器端口,默认为 22
-P: 使用密码连接服务器,覆盖已保存设置,密码将不会保存
-i path: 使用私钥,path 为私钥路径,覆盖已保存设置,私钥将不会保存
servername 服务器别名
username: 服务器用户名,默认为当前用户名
hostname: 主机名或 IP 地址
user, user2, user3, ...: 成员名
ssh-auth auth show
当且仅当某服务器的某个公钥没有任何成员在使用时,会尝试连接服务器并删除该公钥。
ssh-auth auth rm id [id2 [id3 ...]]]
id, id2, id3: 授权 id,可通过 ssh-auth auth show
查看。
ssh-auth sync [servername|[username@]hostname] [servername|[username@]hostname] ...
当不提供服务器列表时,默认重新同步所有服务器的公钥。
servername 服务器别名
username: 服务器用户名,默认为当前用户名
hostname: 主机名或 IP 地址