05 May 2008

Jabber Shell

jabsh (Jabber Shell) - the program for the remote computer management on the protocol XMPP. Designed for use in situations where the use of SSH is not possible. For example ISP uses NAT and / or IP of gray list - unable to assist in this case. As a client on the side of the administrator fit any Jabber client (mcabber, Kopete, Bombus etc.)

For jabsh work you need access to any jabber-server on which you can register two accounts. For jabsh you do not need external IP, tunnel or ssh.
For jabsh you need a separate JID (JSJID) to which you will send shell-commands, and with whom you will get command output. For JSJID you must specify the password in config (Passwd). JSJID should not coincide with your main JID!! Your primary JID is administrator JID (Admin). Password of administrator JID for jabsh do not need!
For each JID'a need to specify the resource. If the resource of administrative JID in config does not coincide with the current resource in your IM-client, the jabsh will reject all commands which you sent from this IM-client, even if admin JID in config and your JID match.
When you send a shell-command to jabsh JID, the program checks your JID and resource to coincide with the relevant data in its configuration file. If they do not match - you get error message; jabsh prevents administrator about attack and write to a log-file record about this event. If they (JIDS) match, the received shell-command is execute (if it is waiting for input from the user, then jabsh waiting forever for it to finish:)). The output of the command is sent to the JID of shell-command sender.
by -- Andrienko Yevgeny

1 comment:

Eon said...

HI Narendra Sisodia,
I don't know how to Thank you, but this piece of Art of yours really helped me a lot. So Thanks a lot. You really have helped me in achieving the functionality that I needed. I have been searching all over the net for the same for past few days, but couldn't help myself. Then I struck upon your page. And guess what, you really helped me a lot.
One piece of advise though, please if you really want to help many like me, make proper documentation for your project. And hey, please include Dependencies required for your project, for e.g. Gloox.

Anyways, Thanks a lot...