В чем разница между терминалом и шеллом в ssh?
свой putty пишешь?
pty-req: sshd - tty-master - tty-slave - sh
shell: sshd - pipe - sh
некоторые программы будут работать иначе если не обнаружат у себя терминала
Ага, тока без гуя
Спасибо. Вот это уже похоже на то, что мне нужно, осталось разобраться с терминалами - я ни разу не юниксоид
pty-reqоп
т.е. я удаленно теоретически не могу запустить абсолютно любой процесс (если это прямо не запрещено составителем программы)?
опВообще, для того и задумывалось. Там есть даже тип запроса "exec", который тупо запускает то, что ты его просишь (если у пользователя, под которым ты заходишь есть права на это). Также можно сигналы слать и прочая
т.е. я удаленно теоретически не могу запустить абсолютно любой процесс (если это прямо не запрещено составителем программы)?
понял, уровень образования повысился
Вопрос, а какова задача? Если нужен интерактивный режим, то используй псевдотерминал, если скрипты запускать, то sh будет достаточно.
Есть хороший документ про ssh - RFC4254, почитай.
даже если по ssh открыт root, то тоже есть ограничения?
Вопрос, а какова задача? Если нужен интерактивный режим, то используй псевдотерминал, если скрипты запускать, то sh будет достаточно.Задачка - некоторый сканер, который работает хочет выполнять некоторые команды, получать ответы, обрабатывать их и т.д.
Есть хороший документ про ssh - RFC4254, почитай.
В принципе, у меня уже есть реализация, которая работает через терминал, но она довольно глючная и тормозная, как из-за того, что довольно криворукий чувачок писал, так и из-за того, что использует какую-то древнющую версию сторонней библиотеки, которая глючная плюс пилена, всеми кому не лень. А я тут решил сделать по-человечески, вот и изучаю возможности этого дела.
Все rfc по ssh сегодня прочитал, но некоторые вопросы остались, думаю, что больше из-за того, что я в unix не слишком силен. Скажем, про escape-последовательности в rfc ничего не сказано. Может, это не их область, но в книженции SSH. The Secure Shell приводятся примеры escape-последовательностей, которые можно слать серверу, там есть последовательность отключения escape-последовательности. А у меня бывает, они приходят и сейчас удаляются руками. Вот, пытаюсь, в частности, узнать - можно ли победить эту проблему стандартными средствами. Плюс, что может поломаться, если я переключу с терминала на шелл
Если root'ом можно по ssh логиниться, то и делать можно то, что root'у разрешено
а, т.е. для рута нет разницы - по ssh или чисто tty? *не имея в виду, конечно, сетевые функции*
Вроде как, да, если не прав - пусть знающие люди поправят
Я что-то не совсем понимаю. Вот есть процесс от пользователя 0 (/bin/bash он получает последовательности символов: в одном случае от tty, в другом по сети. Что с ними делать, уже решает вне зависимости от того, откуда они пришли. Могут из файла поступать, например. Тут что-то может быть непонятно?
Что с ними делать, уже решает вне зависимости от тогово
т.е. все лежит на "пальцах" написавших его людей?
"его" — /bin/bash?
человеческий фактор

Можно залогиниться по ssh'у на комп под рутом или без рута, но потом заюзать sudo или su, ввести rm -rf /* и будет плохо, да.
1) с ssh ты хер выполнишь оную команду
2) с ssh ты хер выполнишь оную команду, зато с tty...
3) да хоть с ssh, хоть с tty - нам похуй
PS: А вообще терминалы, особенно не псевдо, а какой-нибудь VT10x или VT2xx, штуки сложные и ИМХО лучше с ними по доброй воле не связываться

Спасибо, с этим теперь, вроде, ясно
раньше(во времена мейнфреймов) терминалы были реализованы в железе и подсоединялись терминальными линиями связи со своими протоколами, сейчас концептуально ничего не изменилось, а физически - все эмулируется
Кстати, putty эмулирует linux console и vt100
И более того, локальные консоли - это тоже эмуляторы терминалов. Эмулируются ядренным драйвером.
Свойства терминалов описаны в /etc/termcap
Можно попытаться реализовать свой терминал с требуемыми возможностями (capability) и задекларировать в /etc/termcap.
В чем разница между терминалом и шеллом в ssh?
концептуально разные понятия.
терминал - это псевдографический интерфейс, который обеспечивает вывод информации на экран и обрабатывает клавиатуру и мышь (если терминал имеет мышь)
шелл - это программа, которая выполняет команды, которые вводит пользователь.
ты наговорил очевидностей и при этом не ответил на вопрос. В чем был смысл?
ты наговорил очевидностей и при этом не ответил на вопрос. В чем был смысл?
в том, что если хочется больше чем стандартный терминал - то нужно копать /etc/termcap
P.S.
никто на очевидный вопрос "В чем разница между терминалом и шеллом в ssh?"
не написал такой же очевидный ответ.
Претензии выскажи зеркалу, малыш.

P.S.Потому что они очевиден?
никто на очевидный вопрос "В чем разница между терминалом и шеллом в ssh?"
не написал такой же очевидный ответ.
Претензии выскажи зеркалу, малыш.К чему так оскорбляться?
Прошу не ругать за безграмотность (любую).
а ты ему про tty отвечаешь.
нахер это ему? тем более, что даже не терминал, а файл устройства.
Я ему ни про что не отвечал, потому что сам не знаю, о чем идет речь, хотя в твоих сообщениях ничего нового для себя не нашел.
Я ему ни про что не отвечал, потому что сам не знаю, о чем идет речь, хотя в твоих сообщениях ничего нового для себя не нашел.ну и правильно, я же не тебе отвечал

Ну можешь тогда для меня теперь ответить на вопрос из первого сообщения? Потому что я его (ответа) не нашел. Вот что странно. Имеено об этом тебе и написал.
Ну можешь тогда для меня теперь ответить на вопрос из первого сообщения? Потому что я его (ответа) не нашел. Вот что странно. Имеено об этом тебе и написал.пацану нужно что-то из этого:
либо терминал с особыми свойствами
либо настроить sudo
либо все вместе.
терминал - это псевдографический интерфейс, который обеспечивает вывод информации на экран и обрабатывает клавиатуру и мышь (если терминал имеет мышь)
И как это вяжется с ssh? Запросил я у сессии терминал - у меня что ли начнут сами события мыши или клавиатуры передаваться или я их еще как-то должен передавать отдельно, если да - то как?
вопрос задал человек, которому что терминал, что шелл - один хер:
Как уже было отвечено ранее - шелл там запускается в обоих случаях, только данные там ходят по-разному между ним и sshd. Вопрос был в том, как это влияет на данные, которые мне приходят в ответ.
пацану нужно что-то из этого:
либо терминал с особыми свойствами
либо настроить sudo
либо все вместе.
То, что мне нужно, я написал в одном из предыдущих постов, правда, не указал, что на удаленной машине я настраивать ничего не могу. А зачем мне терминал с особыми свойствами? А sudo здесь вообще при чем? Да и какое судо на циске?
Да и какое судо на циске?ssh к циске?
Если что, оно там сильно ненатуральное (если речь про IOS, а не про NX-OS)
ssh к циске?Что значит сильно ненатуральное (в частности, на IOS)? Вполне нормально работает.
Если что, оно там сильно ненатуральное (если речь про IOS, а не про NX-OS)
Разве оно не утащено туда с кунигу^куникса?
Каналы закрывает без спроса, например.
>telnet cisco-nexus 22
Connected to cisco-nexus.
Escape character is '^]'.
SSH-2.0-OpenSSH_4.5
>telnet cisco-ios 22
Connected to cisco-ios.
Escape character is '^]'.
SSH-2.0-Cisco-1.25
Ну, как бы rfc не запрещает закрывать канал, если он не используется некоторое время (да и вообще, в любое другое время). Вон, на многих сайтах тоже сессия протухает, если ей некоторое время не пользоваться, это ж не значит, что они сильно ненатуральные. Никто не обязан openssh использовать - кому, что больше подходит, у меня сейчас, например, тоже не openssh клиентская либа
у меня сейчас, например, тоже не openssh клиентская либаа какая? перловая?
И как это вяжется с ssh?
В том-то и дело что никак не вяжется

Запросил я у сессии терминал - у меня что ли начнут сами события мыши или клавиатуры передаваться или я их еще как-то должен передавать отдельно, если да - то как?
у тебя есть ssh-клиент, который эмулирует терминал и обрабатывает события клавиатуры, мыши и управляет экраном.
Причем ssh-клиент говорит серверу какой он терминал эмулирует, у сервера в /etc/termcap прописаны свойства многих терминалов. И сбольшой вероятностью в /etc/termcap описан терминал, который сообщает ssh-клиент.
Один хер: ssh или telnet или serial - механизм взаимодействия "терминал - сервер" один и тот же, только транспорт разный.
ssh протокол описывает только безопасное выполнение комманд.
sudo - нужно для разграничения прав запуска комманд.
Ты напиши более подробно и понятно про свою задачу и поменьше выебывайся, падаван нна.
Ух ты, и такое бывает? Я сталкивался только, когда проходит некоторое время
Бывает, в ssh v2 при подключении без терминала циска закрывает канал без церемоний и следующую команду выполнить уже нельзя - соединение закрыто.
Ты напиши более подробно и понятно про свою задачу и поменьше выебывайся, падаван нна.Вообще, я нигде не выебывался. Задача: залогиниться на тачку, выполнить там несколько команд, получить от них результат. Выполняемые команды могут зависеть от результатов предыдущих. Все это нужно сделать без участия пользователя. Поддерживаемые системы различны: циски, линунксы, соляра, бсд, наборы команды на них различные.
либо ssh-модуль
либо телнет-модуль
либо rsh-модуль
Expect самое то.
тот же PuTTY, например.
Очевидно, нужна автоматизация (там, где подразумевается интерактивность).
посмотри на fabric
1. Я не могу заставлять клиентов ставить у себя дополнительно какие-то вещи: перл, питон и любые другие - максимум набор dll'ек, которые будут рядышком с прогой валяться.
2. Эта штука является не полноценной системой, а частью более сложной программы, которая написана на С++ и с которой нужно уметь легко взаимодействовать, т.к. обработка результатов довольно нетривиальная. При этом мы не можем перенести логику на новый язык (чтобы не было дублирования старого и нового вариантов, старый используется еще для других целей).
3. Плюс панический страх руководства всего стороннего

Т.е. выбор у меня не особо велик, поэтому я как-то и не делал акцент на то, как это сделать.
В ssh ни терминалов, ни шеллов нет.
Терминал --- это устройство, симулирующее телетайп.
Шелл --- интерпретатор (диалоговый) командного языка.
> можем там запросить создание псевдо-терминала (pty-req)
Тебе выделят, не "создадут," это не обязательно, а именно выделят,
потому что псевдотерминалы могут быть жёстко прописаны нодами в /dev,
псевдотерминал. Подробности можно прочитать в openpty(3) и в т.п.
документации.
---
Q7: А что за suxx?
A7: unix.
Оставить комментарий
agent007new
Прошу не ругать за безграмотность (любую).В общем, так: когда мы открываем канал в ssh, то можем там запросить создание псевдо-терминала (pty-req а можем просто шелл запросить (shell). При запросе терминала мы можем указать размеры терминала, и они даже могут как-то учитываться удаленной стороной. В чем будет разница в приходящих мне данных? Т.е. что может придти для терминала, но не придет для шелла и наоборот? В частности, escape-последовательности могут приходить в шелл,