文件
PazeSSH/apps/agent/main.c
T

45 行
1.3 KiB
C

/* pssh agent —— SSH Agent 守护进程 (平替 ssh-agent)
*
* 提供 Windows 命名管道 \\.\pipe\openssh-ssh-agent
* 与 POSIX unix socket $SSH_AUTH_SOCK(缺省 /tmp/paze-agent.sock)。
*
* 用法:
* paze-agent (前台运行,Ctrl+C 退出)
*/
#include "paze/ssh_agent.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <signal.h>
#endif
int pssh_cmd_agent(int argc, char **argv) {
if (argc < 2) {
fprintf(stderr,
"用法: pssh agent\n"
"启动 SSH agent 守护进程(无参数,前台运行,Ctrl+C 退出)\n"
"相关命令: pssh add <keyfile> 添加密钥, pssh add -l 列出身份\n\n");
/* 显示用法后继续启动守护进程 */
} else {
fprintf(stderr, "paze-agent: unknown option '%s' (pssh agent 无参数)\n", argv[1]);
return 1;
}
#ifdef _WIN32
fprintf(stderr, "paze-agent: listening on \\\\.\\pipe\\openssh-ssh-agent\n");
#else
const char *path = getenv("SSH_AUTH_SOCK");
if (!path) path = "/tmp/paze-agent.sock";
fprintf(stderr, "paze-agent: listening on %s\n", path);
#endif
fprintf(stderr, "paze-agent: running (Ctrl+C to stop)\n");
fflush(stderr);
int rc = ssh_agent_daemon();
if (rc != 0)
fprintf(stderr, "paze-agent: failed to start agent\n");
return rc;
}