命令:必须从终端运行


9

我有一个共享的托管帐户,我使用ssh登录。例如,当我输入时,su我得到以下输出: su: must be run from a terminal

此错误是否与我没有足够的权限或其他原因有关?


通常,我希望该错误表示没有为该连接分配TTY,但是如果您通过SSH连接并获得外壳程序,则没有任何意义。ssh -F /dev/null user@host从本地系统开始,您是否可以分享采取该步骤的确切步骤?(这将-F /dev/null导致忽略任何系统或用户本地SSH配置。)如果您无权使用su,通常会导致更明显的错误消息(尽管我不记得确切的用词,也没有我可以尝试的系统设置)。
CVn

1
可能与securetty(5)有连接吗?换句话说,ssh会话的tty是否在/ etc / securetty中列出?(/ dev /开头)
D McKeon 2013年

您说,例如su,其他命令是否得到此错误?
ctrl-alt-delor 2013年

该命令tty显示什么?您是使用ssh登录然后输入su,还是正在运行ssh su?您正在使用哪种终端仿真器?您应该具有root用户访问权限吗?
吉尔斯(Gillles)“所以-别再邪恶了”

尝试回答所有问题:我使用ssh登录(ssh -l login@host host只有在使用此命令时才能登录),而不是键入su(其他命令正常运行),键入时tty我有:not a tty
4m1nh4j1 2013年

Answers:


4

尝试使用-tssh选项。如果不起作用,请尝试-tt

-t 强制伪tty分配。这可用于在远程计算机上执行任意基于屏幕的程序,这可能非常有用,例如在实现菜单服务时。-t即使ssh没有本地tty,多个选项也会强制tty分配。


我尝试过ssh -tl root@host host并加倍t,但结果相同。附言:正如文档中提到的那样,要使用ssh登录,我应该使用以下命令ssh -l login@host host
4m1nh4j1 2013年

为什么要以root用户身份登录?而且您不需要-l
ctrl-alt-delor 2013年

我正在使用,-l是因为我发现没有添加它就无法登录。我可以在dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System(我发现的唯一页面是法文)中看到此内容。如果我不使用-lssh,请不要接受密码。
4m1nh4j1 2013年

我使用“ root”作为登录名创建了一个ssh帐户,因此我使用root@host了ssh
4m1nh4j1 2013年

以root身份登录,被认为是有害的:大多数与安全有关的人都禁用root登录。登录后即可获得root特权(我建议使用sudo)。如果您还禁用密码认证,从而强制基于密钥的认证,那么您将需要密钥和密码才能进入根目录。
ctrl-alt-delor 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.