Использование ssh -t
вместо ssh
подключения к удаленным серверам имеет несколько преимуществ. Например, я могу непосредственно редактировать файл с помощью Vim: ssh -t host vim foo.txt
, который потерпит неудачу в противном случае.
Существуют ли обстоятельства, при которых распределение (псевдо) -tty было бы плохо при использовании ssh?
В дополнение к вышесказанному ...
(1) Различные способы ухода от тильды:
"~." escape отключит вас, если у вас есть pty (-t). Для длительной команды вы можете не дать кому-то случайно остановить процесс, если наберете ~.
$ ssh hostname.tomontime.com -t sleep 60
[type ~. и он отключается]
Соединение с hostname.tomontime.com закрыто.
$ ssh hostname -T sleep 60
[Я печатаю ~. и он обрабатывает его как обычные нажатия клавиш, которые команда sleep игнорирует.]
~.
~.
Попробуйте то же самое с CTRL-C. Вы увидите, что с помощью -t вы отправляете CTRL-C в «спящий режим». С помощью -T вы отправляете CTRL-C в программу ssh, работающую на вашем компьютере. Могут быть случаи, когда это имеет значение (т.е. программа обрабатывает INT иначе, чем HUP)
(2) Вы просто хотите минимизировать активность pty или сетевого подключения.
При попытке перезагрузить компьютер, на котором нет ptys, вы не хотите, чтобы система пыталась выделить pty! Это также минимизирует сетевые соединения, которые должны быть закрыты (задержка перезагрузки).
Это будет работать быстрее и надежнее:
ssh -T hostname reboot
Это может иметь проблемы:
ssh -t hostname reboot
источник
ssh -t создает псевдотерминал на удаленной машине. Это полезно, если вы объединяете команды ssh на нескольких серверах и хотите иметь реальный терминал на удаленной стороне (например, вы можете использовать 'vi').
Возможно, вы не захотите '-t', когда сценарии входа ведут себя по-разному, если есть терминал. ИМХО, это плохая практика, но я видел случаи, когда сценарий входа проверяет TTY перед 1) установкой приглашения и 2) расширением пути ко многим интерактивным приложениям.
В другом случае (упомянутом TomOnTime выше) я фактически сталкивался со случаями, когда использовался весь TTY (ptys). Очевидно, неправильная конфигурация, но не нужно жевать ресурс для множества туннелей и rsyncs.
источник