LINUX.ORG.RU

ssh и флаг -t

 


0

1

Привет,

Кто-нибудь может мне доходчиво и внятно объяснить в чем разница запуска ssh с ключом -t и без этого ключа?

Я понял так, что этот ключ создает временный туннель, который закрывается по закрытию приложения, запускаемого через ssh. Но проверил, соединение закрывается и так и этак. Т.е. и с ключом и без него.

Короче, проблема в том, что в двух случаях (на разных машинах) ключ -t ведет себя по-разному. Есть тестовый скрипт, который выводит строку «test». Если его запускать с другой машины через ssh с ключом -t, то в одном случае строка будет видна, в другом - нет. Версия ssh одна и та же в обоих случаях. Никак не могу найти причину такого разного поведения. Разве что ssh пропатчен без изменения версии. Без ключа -t строка «test» печатается и в том, и в другом случае.

★★★★★

Последнее исправление: hibou (всего исправлений: 2)

насколько я понимаю, без этого ключа тебе при логине может как выделяться tty (если в интерактивном режиме подключаешься), так и нет (если в batch-режиме). -t форсирует его выделение, -T - невыделение.

maloi ★★★★★
()
Ответ на: комментарий от maloi

Хорошо. Но теперь бы понять причину столь разного поведения.

hibou ★★★★★
() автор топика

ssh с опцией -t создает псевдо-терминал. Нужно для всяких приложений, которым нужен терминал, а его некому создать - допустим мы запускаем по ssh вместо шелла какое-то другое приложение.

То есть при 'ssh ip nano /some/file' у меня, допустим сразу закрывается:

pinkbyte@oas1 ~ $ ssh localhost nano /some/file
Password: 
Error opening terminal: unknown.

А вот с -t прекрасно открывается. При закрытии приложения сразу закрывается сеанс(т.к. шелла нет). Я так вхожу в сессию screen без открытия баша, ну и другие всякие вкусности делаю, да...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Хорошо, но как сделать, чтобы строчка «test» печаталась и с ключом -t если она не печатается.

hibou ★★★★★
() автор топика
Ответ на: комментарий от hibou

проверь /dev/pts на сервере, куда подключаешься и где эта строчка не печатается. Ну и ssh -vv попробуй, чтобы посмотреть что внутри происходит

Pinkbyte ★★★★★
()

дык в мане ясно написано

-t Force pseudo-tty 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 allocation, even if ssh has no local tty.

действительно полезно для всяких диалогов. Например:

$ ssh  localhost dialog --menu text 10 10 3 a aaa
Error opening terminal: unknown.

А вот с -t УМВР.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.