Как можно передать имя пользователя и пароль команде telnet?

Как передать имя пользователя и пароль команде telnet через терминал?
  • 16 января 2024 г. 11:38
Ответы на вопрос 3
Сама команда `telnet` не предусматривает прямую передачу имени пользователя и пароля из командной строки по соображениям безопасности. Текстовый протокол Telnet не шифрует данные, включая учетные данные, что делает его крайне уязвимым для перехвата данных (сниффинга).

Если все же нужно автоматизировать вход по Telnet, то можно использовать скрипты с ожиданием определенных строк (например, "login:", "Password:" и т.п.) и отправкой учетных данных в ответ на эти запросы. Одним из инструментов для этого является `expect`, который часто применяется для автоматизации взаимодействия с программами, ожидающими ввода пользователя.

Пример скрипта на `expect` может выглядеть следующим образом:

```bash
#!/usr/bin/expect -f

# Установить тайм-аут для ответа от команд
set timeout 20

# Команда telnet с указанием адреса хоста и порта
spawn telnet 192.168.1.10

# Ожидание приглашения для ввода имени пользователя
expect "login:"

# Отправка имени пользователя
send "myusername\r"

# Ожидание приглашения для ввода пароля
expect "Password:"

# Отправка пароля
send "mypassword\r"

# Передача управления пользователю
interact

# Завершение скрипта
```

Как использовать `expect`:

1. Установите `expect`, если он еще не установлен:
   ```bash
   sudo apt update
   sudo apt install expect
   ```

2. Создайте файл скрипта с расширением `.exp`, например `telnetlogin.exp`, с вышеупомянутым содержимым.

3. Установите выполнимые права скрипту:
   ```bash
   chmod +x telnetlogin.exp
   ```

4. Запустите скрипт:
   ```bash
   ./telnetlogin.exp
   ```

Пожалуйста, учтите, что передавать логины и пароли в скриптах небезопасно. Это может привести к утечке конфиденциальных данных. Если вам необходимо совершать удаленный доступ к системам, рекомендуется использовать более безопасные протоколы, такие как SSH.
как вариант закинуть в telnet через stdin 

если нужны более сложные взаимодействия то смотри в сторону expect
man expect 

специально под автоматизацию подобных задач сделано
Похожие вопросы