命令echo“users”| ssh myserv不会返回任何内容。为什么?

命令echo "hostname" | ssh myserv echo "hostname" | ssh myserv返回主机名,但echo "users" | ssh myserv echo "users" | ssh myserv不返回任何东西?

当我在服务器上ssh然后运行命令的users ,它返回我的用户名(因为我连接上: – ')。

users只显示login到terminal的用户(以utmplogging)。 echo users | ssh myserv echo users | ssh myserv不会创build一个terminal(这不是一个交互式会话),所以会话没有列出。 更常见的ssh myserv users在不创buildterminal的情况下类似地执行命令。 另一方面, ssh -t myserv users (其中-t强制创build一个terminal)应该显示给你。

再比较一下ssh -t myserv 'tty; who' ssh -t myserv 'tty; who' (显示你login在tty上)用ssh myserv 'tty; who' ssh myserv 'tty; who'not a tty )。

试试这个方法:

 ssh myserv users 

当我尝试这个时,我得到一个错误。 有些程序需要一个tty。 另外请记住,谁和用户是一个特殊情况,他们正在专注于login会话。

 # echo users | ssh host stdin: is not a tty 

看到:

man sshd_config

UseLogin指定login(1)是否用于交互式login会话。 默认是“否”。 请注意,login(1)从不用于执行远程命令

男人用户

用户 – 打印当前login用户的用户名