该命令echo "hostname" | ssh myserv
返回主机名,但echo "users" | ssh myserv
没有返回任何内容?
当我在服务器上 ssh 然后运行命令时users
,它会返回我的用户名(因为我已连接到它:-')。
答案1
users
仅显示已登录到终端的用户(如 中记录的utmp
)。echo users | ssh myserv
不创建终端(它不是交互式会话),因此未列出该会话。更常见的类似ssh myserv users
方式是在不创建终端的情况下执行命令。另一方面,ssh -t myserv users
(-t
强制创建终端的位置)应该会显示给您。
还可以将ssh -t myserv 'tty; who'
(显示您已登录该 tty) 与ssh myserv 'tty; who'
( not a tty
) 进行比较。
答案2
尝试以下方法:
ssh myserv users
答案3
当我尝试这样做时,我收到错误。有些程序需要 tty。另外请记住,who 和 users 是特殊情况,它们专门查看登录会话。
# echo users | ssh host
stdin: is not a tty
看:
sshd_config 命令
使用登录指定是否将 login(1) 用于交互式登录会话。默认值为“no”。 请注意,login(1)永远不会用于远程命令执行。
男性用户
用户-打印用户的用户名当前登录