AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 14389
Accepted
Alex J
Alex J
Asked: 2009-05-30 02:03:16 +0800 CST2009-05-30 02:03:16 +0800 CST 2009-05-30 02:03:16 +0800 CST

什么时候 ssh -t 不适合代替 ssh?

  • 772

使用ssh -t而不是ssh连接到远程服务器有几个优点。例如,我可以直接使用 vim: 编辑文件,ssh -t host vim foo.txt否则会失败。

在使用 ssh 时,在任何情况下分配(伪)-tty 会是一件坏事吗?

linux unix ssh
  • 4 4 个回答
  • 17628 Views

4 个回答

  • Voted
  1. Best Answer
    niXar
    2009-05-30T02:57:43+08:002009-05-30T02:57:43+08:00

    在管道输入或获取输入时,这是“ssh 主机命令”的典型用法。控制字符可以由 TTY 层解释(例如,^S)

    • 15
  2. Xerxes
    2009-05-30T02:55:57+08:002009-05-30T02:55:57+08:00

    是的,有时您想建立一个静默的后台连接,例如在设置隧道时(例如 SOCKS 代理)。在此类示例中,您希望进程没有 tty。

    这是设置从本地主机到某个远程主机的端口转发的示例...

    ssh -l username -fNTL 8073:server:873
    

    设置完成后,您可以 rsync 到 localhost,而不是到远程主机,因此有效地通过ssh...

    rsync --port=8073 -a me@localhost::myStuff /tmp/myStuff/
    

    server如果 rsync 出去到被阻止,你会这样做,但ssh没有。

    • 13
  3. TomOnTime
    2009-05-30T05:33:28+08:002009-05-30T05:33:28+08:00

    除了以上...

    (1) 不同的 tilda 逃逸处理:

    “~” 如果您有 pty (-t),escape 将断开您的连接。对于长时间运行的命令,您可能希望防止有人在键入 ~ 时意外停止该进程。

    $ ssh hostname.tomontime.com -t sleep 60
    [键入 ~. 它断开连接]
    与 hostname.tomontime.com 的连接已关闭。

    $ ssh hostname -T sleep 60
    [我输入~。并将其视为正常的击键,睡眠命令会忽略它。]
    ~。
    ~。

    用 CTRL-C 试试同样的方法。您会看到使用 -t 将 CTRL-C 发送到“睡眠”。使用 -T 您将 CTRL-C 发送到您机器上运行的 ssh 程序。有时这会有所不同(即程序处理 INT 与 HUP 不同)

    (2) 您只想最小化 pty 或网络连接活动。

    当尝试重新启动没有 pty 的机器时,您不想鼓励系统尝试分配 pty!这也最大限度地减少了必须关闭的网络连接(延迟重新启动)。

    这将更快,更可靠地工作:
    ssh -T hostname reboot

    这可能有问题:
    ssh -t hostname reboot

    • 4
  4. ericslaw
    2009-05-30T05:56:02+08:002009-05-30T05:56:02+08:00

    ssh -t 在远程机器上创建一个伪终端。如果您通过多个服务器链接 ssh 命令并希望在远端有一个真正的终端(例如,您可以使用“vi”),这很有用。

    如果有终端,当登录脚本的行为不同时,您可能不想要“-t”。恕我直言,这是不好的做法,但我见过登录脚本在 1) 设置提示和 2) 将路径扩展到许多交互式应用程序之前检查 TTY 的情况。

    在另一个例子中(上面的 TomOnTime 提到),我实际上遇到了所有 TTY (ptys) 都用完的情况。显然是错误配置,但无需为一堆隧道和 rsync 消耗资源。

    • 3

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve