为什么在ssh中使用-T
要测试ssh,我读到您需要使用类似于为什么在ssh中使用-T,ssh,Ssh,要测试ssh,我读到您需要使用类似于ssh-T的东西user@domain.com: 根据manssh: -T Disable pseudo-terminal allocation. -t Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very
ssh-T的东西user@domain.com
:
根据manssh
:
-T Disable pseudo-terminal allocation.
-t Force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote
machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty alloca-
tion, even if ssh has no local tty.
但是我仍然不清楚,即使在阅读了本文之后,在测试SSH时使用-T
的目的是什么
我阅读了pseudo terminals(),但这似乎没有帮助。要在ssh shell中使用交互式提示符,还需要在服务器端分配PTY。当您调用
ssh-host
时,它会自动完成
当您在服务器上分配此PTY时,您的本地终端和远程终端正在交换一些附加消息(终端控制字符),这些消息为远程外壳提供有关本地终端大小的信息,远程终端可以更新窗口标题等。当您想要传输文件或只是“按原样”传递输出时,这是您真正不想要的。它会修改它,你会得到其他的东西。同样,如果您使用scp
或仅使用非交互脚本作为ssh-host-my-u-script
,这将自动完成
到目前为止还不错。你不需要开关。但事情可能并不总是那么简单
- 您可能希望调用一些交互式shell作为命令,例如
。这会起作用,但不会是交互式的。在这种情况下,需要使用ssh-host/bin/zsh
开关使其正常工作:-t
ssh-t host/bin/zsh
- 同样的事情也可以反过来。您可能已经设置了服务器,无论您请求什么命令,它都会给您一些输出。在这种情况下,您真的不想用任何终端控制字符来搞乱它,然后您可能希望使用
来避免这种情况ssh-t host
可以考虑<代码> -t/代码>作为服务器上安全资源的方式,作为一些“第二道防线”。您可以在服务器配置中禁用TTY分配,但是如果
-T
开关最常见的使用情况是
ssh -T git@github.com
验证您是否已正确设置ssh密钥以向github进行身份验证