Using Puttygen to create a ssh key and passwordless login with putty to Centos.

The ssh password-less login works in a  simple way. Though sometime people find it confusing.

The basics:

>  Client side has a private key pointed to by

>  Server side has the public key of the client.

On your client box create a public and private key set using (for putty) puttygen. (In linux all you need to use is ssh-keygen.

Please look at the page here : https://www.puttygen.com

On the server :

If not already there create a folder /<user_home>/.ssh  e.g. /root/.ssh and in that folder create a file named authorized_keys. This file will store all the public keys that a given user with matching private key, can use. Easy way echo “<paste here>” >  ~/.ssh/authorized_keys

mkdir ~/.ssh

echo “ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBz7Pml97wSzFMSr1W84rA0Mm8MY8I1jKdAmMcF4sw5GilormHJQRYI8siT1XPaLJFAO20ziZg9YrJFp+roKC34gpe1myFWUz944iucrLIQznZwPDJbMKxQXwzj1LUPmt7eXPzwM1ztvcG8HOoZlTt2B6hOAVWAHxlZNzPq/9y1Fw== rsa-key-20131124” > ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

chmod 700 /~/.ssh

Once this is done you can add the private key to the client under ssh -> Auth -> private key.

Select back the session and save it as usual in Putty.

If you get the error “Server refused our key” it probably means you still have SElinux enabled.

To fix this:

restorecon -R -v /root/.ssh

 

That should work.

nJoy 😉

Controlling windows system from a Linux box.

Set up winexe.

wget "ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/GRNET:/synnefo/CentOS_CentOS-6/x86_64/winexe-1.00-9.1.x86_64.rpm"
yum install winexe-1.00-9.1.x86_64.rpm

 

Test the connection

<pre>telnet 10.0.0.123 139</pre>

Now we can try the system out

winexe -U "User 1" --password=secretpassword //10.0.0.123 'cmd /C "whoami"'

If you get :

ERROR: Failed to open connection - ERRDOS:ERRnomem

then it’s probably a Windows 7 box

run

 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
 reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

on the windows box and restart.

Now try again

winexe -U "User 1" --password=secretpassword //10.0.0.123 'cmd /C "whoami"'

you should get something like :

Win7Sstem\User 1

njoy 😉

 

 

ref: http://alan.lamielle.net/2009/09/03/windows-7-nonpaged-pool-srv-error-2017

ref: http://www.decuslib.com/decus/vmslt99a/nt/tips.txt

 

How to allow includes, Basic Auth from outside .htaccess

This .htaccess file does the following:

Allow SSI lines 1/2/3

Reauire Authenitcation for all outside except those from a particular IP the rest ..

Options +Includes      
AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
AuthType Basic
AuthName “Password Required For INGG Monitor”
AuthUserFile /var/www/passwords/password.file
Require valid-user
Order deny,allow
Deny from all
Allow from 323.365.376.398
Satisfy any
Header set Access-Control-Allow-Origin “*”
~

 

you need to enable the headers module (mod_Headers)

In Ubuntu :

cd /etc/apache2/mods-enabled/

ln -s ../mods-available/headers.load headers.load 

nJoy 😉

 

Installing latest ImageMagick on Centos 6.3

When I needed ImageMagick on Centos the default installer came with a version some 400 verison back.

Installing the latest version was a bit wiry so here it goes:

 

wget “http://www.imagemagick.org/download/linux/CentOS/i386/ImageMagick-6.8.6-9.i386.rpm”

yum install bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel

yum install fftw-3.2.1-3.1.el6

download libltdl3-1.4.3-9sls.i586.rpm

wget “ftp://ftp.pbone.net/mirror/ftp.rpmhelp.net/pub/releases/1.0-CURRENT/i586/RPMS/libltdl3-1.4.3-9sls.i586.rpm”

install it :

yum install libltdl3-1.4.3-9sls.i586.rpm

 

yum install ImageMagick-6.8.6-9.i386.rpm

 

Voila.

 

nJoy;

 

 

 

Node.js handling mysql disconnects.

You may lose the connection to a MySQL server due to network problems, the server timing you out, the server being restarted, or crashing. All of these events are considered fatal errors, and will have the err.code = 'PROTOCOL_CONNECTION_LOST'. See the Error Handling section for more information.

A good way to handle such unexpected disconnects is shown below:

 

var db_config = {
  host: 'localhost',
    user: 'root',
    password: '',
    database: 'example'
};

var connection;

function handleDisconnect() {
  connection = mysql.createConnection(db_config); // Recreate the connection, since
                                                  // the old one cannot be reused.

  connection.connect(function(err) {              // The server is either down
    if(err) {                                     // or restarting (takes a while sometimes).
      console.log('error when connecting to db:', err);
      setTimeout(handleDisconnect, 2000); // We introduce a delay before attempting to reconnect,
    }                                     // to avoid a hot loop, and to allow our node script to
  });                                     // process asynchronous requests in the meantime.
                                          // If you're also serving http, display a 503 error.
  connection.on('error', function(err) {
    console.log('db error', err);
    if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually
      handleDisconnect();                         // lost due to either server restart, or a
    } else {                                      // connnection idle timeout (the wait_timeout
       throw err;                                 // server variable configures this)
    });
}

handleDisconnect();

As you can see in the example above, re-connecting a connection is done by establishing a new connection. Once terminated, an existing connection object cannot be re-connected by design.

With Pool, disconnected connections will be removed from the pool freeing up space for a new connection to be created on the next getConnection call.

svn fails to transmit data: Transmitting file data .

I had svn not committing to the repository. It would just stop at

Transmitting file data .

and would not budge.

upgrade , and committing another file on it’s own would work .

 

I sudo’ed as root and used chown user. on the folder where the working copy was and it sorted itself out.

So the issue must have been permissions.

Hope this helps someone else !

 

 

Vim auto align columns

Best trick ever i found on vim :

if you start with rough space, comma delimited files to align them just type in command :

 :%!column -t

AWESOME !!!
I love VIM

nJoy ;-)