Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: telnet a ssh s login skriptami  (Přečteno 1974 krát)

romi

  • Stálý člen
  • **
  • Příspěvků: 711
telnet a ssh s login skriptami
« kdy: 18 Prosince 2006, 14:22:43 »
hladam nahradu programu Secure CRT, ktory pouzivaju kolegovia. spaja funkcie minicomu, telnetu a ssh do jedneho grafickeho programiku a ma jednu super vymozenost :). .. login skripty. da sa v nom nadefinovat, co sa ma pri vystupe do terminalu vlozit, tazke v kazodm profile staci zadefinovat ipcku, protokol.. mena a hesla a uz nikdy si ich netreba pamatat. znacne by mi to urychlilo prihlasovanie do sieti a na zariadenia zakaznikov.

ssh umoznuje prihlasovanie pomocou klucov, ale je to nerealne, aby som na 400 zariadeni ted importoval kluce :), preto je jednoduhsie pouzit to meno a heslo (pripadne este enable passwd pri cisco zariadeniach).

ma niekto nieco podobne zvladnute? cez skriptiky a podobne...??

dik
randy [HP nc6320 -- Ubuntu Gutsy Gibbon with KDE]
== linuxove minimum ==

romi

  • Stálý člen
  • **
  • Příspěvků: 711
telnet a ssh s login skriptami
« Odpověď #1 kdy: 19 Prosince 2006, 14:42:36 »
tak som to vyriesil pomocou expect.

su potrebne tri subory: dva skripty a jeden subor, kde su ulozene priptupy.

prvy skript vyhlada v subore pristupov potrebny riadok a vlozi ho ako argument druheho skriptu, ktory vykona:
Kód: [Vybrat]
#!/bin/bash
/usr/local/bin/expect_qq $(grep "^$1 " ~/pristupy)
Kód: [Vybrat]
#!/usr/bin/expect -f
set protokol    [lrange $argv 1 1]
set port        [lrange $argv 2 2]
set ipaddress   [lrange $argv 3 3]
set username    [lrange $argv 4 4]
set password    [lrange $argv 5 5]
set enpass      [lrange $argv 6 6]
set timeout -1
match_max 100000
if {$protokol == "telnet"} {
        if {$port == "-"} {spawn telnet $ipaddress}
        if {$port != "-"} {spawn telnet $ipaddress $port}
        expect "*rname:*"
        send "$username\r"
}
if {$protokol == "ssh"} {
        if {$port == "-"} {spawn ssh $username@$ipaddress}
        if {$port != "-"} {spawn ssh $username@$ipaddress:$port}
}
expect "*assword:*"
send "$password\r"
if {$enpass != "-"} {
        send "ena\r"
        expect "*assword:*"
        send "$enpass\r"
        send "\r"
}
interact
v subore ~/pristupy su ulozene pristupove udaje v tvare:
Kód: [Vybrat]
meno_pristupu protokol port ip.ad.re.sa uzivatel heslo enable_hesloak nepotrebujem uviest cislo portu alebo enable_heslo, tak zadam -.

potom uz len napisem
Kód: [Vybrat]
qq meno_pristupua som prihlaseny na zariadenie (router/switch/firewall) bez znalosti mena a hesiel :))

ak ma niekto napad na vylespenie, prosim nech sa k nemu prizna :)) diik
randy [HP nc6320 -- Ubuntu Gutsy Gibbon with KDE]
== linuxove minimum ==

 

Provoz zaštiťuje spolek OpenAlt.