我正在使用远程 PC WSL(Ubuntu 20)作为开发服务器,作为工作流程的一部分,我想在 ssh 会话中构建应用程序时自动下载文件。
所以我需要找到一种方法来知道我是直接在机器中运行脚本(NodeJS)还是通过 ssh 连接远程运行脚本(NodeJS)。
有办法检查吗?
更多信息:
- 我使用公钥/私钥进行身份验证
- ssh 中允许的用户和我的本地用户名是一样的
答案1
以下检查在 WSL 中可能仍有效:
- 如果其中一个变量
SSH_CLIENT
或被SSH_TTY
定义 - 如果登录 shell 的父进程名称是
sshd
答案2
如果 ssh 服务器在 Windows 内部运行而不是 WSL 本身,则需要从 WSL 退出到 cmd 并进行检查。
这就是我想出的:
echo $(cmd.exe /c 'echo %SSH_CLIENT%' 2>/dev/null | sed $'s/\r//' | grep ' 22$')