От доста време се мъча с 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 и прочие. 🙂
Пак ли да те уча 🙂
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
Така си ми е екстра 😛
Я да видим как ще изпълниш следното примерно
ssh user@server bash
😉 Случайно нещо да става кофти в конзолата 😉
Я дай пак въпроса, че нещо се обърках. Въпосния скрипт, за който съм писал е само за автоматично логване, не изпълнява други функции?
Защо не използваш логване с ключ, вместо старомодното (поне за мен) логване с различни пароли по различни сървъри 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/
Не си ли ползвал “ssh root@my.server.com uptime” ?
Благо, а ако си през телефон и нямаш опция за ключ какво правиш /освен че може да държиш машина с парола и там вече да ти е ключа/ 🙂
Използвам само “ssh-server1” и се логвам в машината server1 и правя всичко осатанало по нормалния начин. Това е само за логване без да пиша пароли и прочие.
ПС: На gentoo забелязах, че е нужна малка корекция по скрипта. Там пита за password с главно P 🙂
@Данчо – не знам за през телефона 🙂 Аз винаги имам uptime машина, на която имам ключ 🙂
Определено нещо много полезно 😉 Само някой да не придобие достъп до машината ти :), че ще удари джакпота 😉
Винаги можеш да поддържаш нещата криптирани и при физически достъп до компютъра ти да не могат да се възползват, а ако отдалечено придобият достъп до него си заслужаваш да ти ударят джакпота 🙂