Скрипт за автоматично логване към SSH

От доста време се мъча с copy/paste на паролите към повечето сървъри, на които се логвам поради простата причина, че няма как да бъдат запомнени (-:

Решението, което открих е Expect, а стъпките по създаването директно на отделни “команди” за автоматичен логин са следните:

!) Естествено си инсталирате Expect, ако го нямате.
http://expect.nist.gov/#unix – пакет за саморъчно компилиране
apt-get install expect – има го в хранилищата на Ubuntu

2) Създаваме си следния примерен файл /usr/local/bin/ssh-server1 с примерно съдържание:

#!/usr/bin/expect
spawn ssh user@hostname-of-server1.com
expect “password:”
send “moiataparola123\n”
interact

3) chmod +x /usr/local/bin/ssh-server1

Резултата при изпълнението на новосъздадената “команда” ще е аналогичен на този:

$ ssh-server1
spawn ssh user@hostname-of-server1.com
user@hostname-of-server1.com’s password:
Linux server1 2.6.*-* ********************************
Last login: ********** from ****************

Съответно в /usr/local/bin/ може да си създадете колкото са ви нужни такива скриптове за използваните сървъри и забравяте за въвеждане на пароли с copy/paste и прочие. 🙂

This entry was posted in IT and tagged , , . Bookmark the permalink.

10 Responses to Скрипт за автоматично логване към SSH

  1. Йордан says:

    Пак ли да те уча 🙂
    apt-cache show sshpass
    Package: sshpass
    Priority: extra
    Section: universe/utils
    Installed-Size: 64
    Maintainer: Ubuntu MOTU Developers
    Original-Maintainer: Shachar Shemesh
    Architecture: i386
    Version: 1.01-2
    Depends: libc6 (>= 2.4)
    Recommends: ssh-client
    Filename: pool/universe/s/sshpass/sshpass_1.01-2_i386.deb
    Size: 8638
    MD5sum: c911449d75a723ccc79f2dcc600058ee
    SHA1: f2e6e761a09e5372672eaa0c7c8289bd5417b442
    SHA256: f0a59b0c6cc43451e7dd75e6cc4a3438633b99de273c6c69627bc70d50f3dee4
    Description: Non-interactive ssh password authentication
    SSH’s (secure shell) most common authentication mode is called “interactive
    keyboard password authentication”, so called both because it is typically
    done via keyboard, and because openssh takes active measures to make sure
    that the password is, indeed, typed interactively by the keyboard. Sometimes,
    however, it is necessary to fool ssh into accepting an interactive password
    non-interactively. This is where sshpass comes in.
    .
    SECURITY NOTE: There is a reason openssh insists that passwords be typed
    interactively. Passwords are harder to store securely and to pass around
    securely between programs. If you have not looked into solving your needs
    using SSH’s “public key authentication”, perhaps in conjunction with the ssh
    agent (RTFM ssh-add), please do so before being tempted into using this
    package.
    Homepage: http://sourceforge.net/projects/sshpass
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Origin: Ubuntu

  2. JaG says:

    Така си ми е екстра 😛

  3. Йордан says:

    Я да видим как ще изпълниш следното примерно

    ssh user@server bash

    😉 Случайно нещо да става кофти в конзолата 😉

  4. JaG says:

    Я дай пак въпроса, че нещо се обърках. Въпосния скрипт, за който съм писал е само за автоматично логване, не изпълнява други функции?

  5. Защо не използваш логване с ключ, вместо старомодното (поне за мен) логване с различни пароли по различни сървъри etc.?
    Ето ти едно четиво, което може да ти е от полза:
    http://bgtechblog.com/2009/07/21/%D0%B2%D1%80%D1%8A%D0%B7%D0%BA%D0%B0-%D0%BA%D1%8A%D0%BC-ssh-%D0%B1%D0%B5%D0%B7-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B0-ssh-key/

  6. Йордан says:

    Не си ли ползвал “ssh root@my.server.com uptime” ?

    Благо, а ако си през телефон и нямаш опция за ключ какво правиш /освен че може да държиш машина с парола и там вече да ти е ключа/ 🙂

  7. JaG says:

    Използвам само “ssh-server1” и се логвам в машината server1 и правя всичко осатанало по нормалния начин. Това е само за логване без да пиша пароли и прочие.

    ПС: На gentoo забелязах, че е нужна малка корекция по скрипта. Там пита за password с главно P 🙂

  8. @Данчо – не знам за през телефона 🙂 Аз винаги имам uptime машина, на която имам ключ 🙂

  9. Определено нещо много полезно 😉 Само някой да не придобие достъп до машината ти :), че ще удари джакпота 😉

  10. JaG says:

    Винаги можеш да поддържаш нещата криптирани и при физически достъп до компютъра ти да не могат да се възползват, а ако отдалечено придобият достъп до него си заслужаваш да ти ударят джакпота 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *