Skip to main content

SSH login without password

As the server passwords comprise of rather painful combination of characters, I often find it annoying to type the password every-time I ssh to a remote server. This annoyance turned into a marked irritation when RapidSVN on Ubuntu 11.10 prompted for password every-time I tried to update, commit or add a file to the repository. As a workaround I was aware that I could use my public key but I wasn't quite aware on how to do it. Apparently it turned out to be a quite straightforward. 

Note: You should have a ssh client installed - Ubuntu has it by default

Step 1: Generate rsa key pair (private/public) in your local machine.

 
Step 2: Login to the remote server using whichever the method you used earlier to create a directory ~/.ssh  if the directory doesn't already exist.

Step 3: Now that you have create the directory exit from the remote server and append your public key to the 'authorized_keys' list in the remote server.

Step 4: Done. Now if you use the login command in Step 2, you won't be prompted for your password.

RSA is a private/public key  encryption algorithm where the public key is "public" - known to everyone (remote server in this case). Your local machine would use this public key to encrypt ssh messages. 

Finally, RSA is a public-key cryptographic technique where the messages encrypted via the private key can only be decrypted via the public key and the messages encrypted via the public key can only be decrypted via the private key. i.e. not the same key is used for encryption and decryption.

Comments

Popular posts from this blog

Detaching a process from terminal - exec(), system(), setsid() and nohup

Linux processes are created by fork() and exec(). The very first process of POSIX systems is init and subsequent processes are derived from the init as parent. These subsequent processes are child processes. During forking the parent process copies itself - with all I/O, address space, stack, everything. The only thing that is different is the process ID. The parent and child will have 2 different process IDs. The system() library function uses fork(2) to create a child process that executes the shell command specified in command using execl(3) as follows: execl("/bin/sh", "sh", "-c", command, (char *) 0); system() returns after the command has been completed. system() executes a command specified in command by calling /bin/sh -c command , and returns after the command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored.  system() calls are often made within programs to execut...

sprintf, snprintf, strcpy, strncpy and sizeof operator

"C library functions such as strcpy (), strcat (), sprintf () and vsprintf () operate on null terminated strings and perform no bounds checking." "snprintf is safer than sprintf" What do these statements really mean? int sprintf ( char * str , const char * format , ... )  int snprintf ( char * s, size_t n, const char * format, ... );  char * strcpy ( char * destination, const char * source ); char * strncpy ( char * destination, const char * source, size_t num );   The usage is something like; char* msg1 = new char[10]; strcpy(msg1, "test"); // 1 char buffer[128]; sprintf(buffer, "%s", msg); //2 strcpy : Copies bytes until it finds a 0-byte in the source code. The string literal "test" has 4 characters and a terminating null character at end, therefore needs 5 characters at least on msg1.  Is this dangerous? Yes, because if the source message is not null terminated it will read until a null character ...

Vaadin vs GWT

From Chapter 1 of book of Vaadin I quote the following. Vaadin Framework is a Java web application development framework that is designed to make creation and maintenance of high quality web-based user interfaces easy. Vaadin supports two different programming models: server-side and client-side . The server-driven programming model is the more powerful one . It lets you forget the web and program user interfaces much like you would program a desktop application with conventional Java toolkits such as AWT, Swing, or SWT. But easier. While traditional web programming is a fun way to spend your time learning new web technologies, you probably want to be productive and concentrate on the application logic. The server-side Vaadin framework takes care of managing the user interface in the browser and the AJAX communications between the browser and the server . With the Vaadin approach, you do not need to learn and deal directly with browser technologies, such as HTML or JavaScript. ...