LINUX.ORG.RU
решено ФорумAdmin

[Telnet] Автологин без ввода логина/пароля

 


0

0

Есть желание автоматизировать вход на железки, написав пару примитивных скриптов.

(sleep 2; echo "login"; sleep 2; echo "passwd") | telnet host
Вот таким макаром логинится и тут же выходит. Я, конечно, могу добавить задержку на любой интервал, но это не совсем верный путь. Можно ли как-то передать управление юзеру?

PS: Буду рад, если можно обойтись без expect и netrc.

★★★★★

expect

и помогалка в написании автоматизированных скриптов: autoexpect

на обе утилиты есть маны... ;)

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

> PS: Буду рад, если можно обойтись без expect и netrc.
Опс, не дочитал.

Slavaz ★★★★★
()
#!/usr/bin/env perl
use strict;
use Net::Telnet ();

my ($hostname, $username, $passwd) = ("192.168.1.1", "admin", "admin");
my $t = Net::Telnet->new (Timeout => 5, Host => $hostname);
$t->login($username, $passwd) or die "Unable to connect to $hostname\n";
send_cmd("iptables -I FORWARD 7 -s 192.168.1.45 -i br0 -j ACCEPT");
print send_cmd("iptables-save"), "\n";
sub send_cmd {
        my ($str) = @_;
        my @result = $t->cmd($str) or die "Can not send $str to $hostname\n";
        return @result;
}
kilolife ★★★★★
()
Ответ на: комментарий от Slavaz

А впрочем можно и expect попробовать, если в конце скрипта поставить

overlay /bin/sh

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

Если после входа нужен интерактивный шел, то только expect.

На машине, с которой ходим телнетами есть expect, но нету spawn.

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

А (x)inetd и nc там есть?

nc есть.

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

Кажется решил с помощью expect и nc вместо spawn, всем больше спасибо!

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