Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Saturday, December 6, 2008

Ubuntu SSH How-to

Scenario: generate SSH key pairs and use PuTTY to logon to Ubuntu without inputing user & password each time.
Steps:
  • Create the Cryptographic Keys:
    $ ssh-keygen -t rsa
    Assign the pass phrase (press [enter] key twice if you don't want a passphrase). It will create 2 files in ~/.ssh directory as follows:
    ~/.ssh/id_rsa : identification (private) key
    ~/.ssh/id_rsa.pub : public key
  • Use WinSCP to copy the id_rsa (private key) to desktop, use PuTTYgen.exe to load this key and save private key to PuTTY's format.
  • Add id_rsa.pub in ~/.ssh/authorized_keys (or authorized_keys2), just in 1 line. Or simply
    mv id_rsa.pub authorized_keys
  • Be sure both the home directory and the .ssh directory be owned and writable only by the owner (700 recommended for .ssh)
  • Any error see /var/log/auth.log
  • sshd protocol 1 is insecure, so vi /etc/ssh/sshd_config:
    [...]
    Protocol 2
    PasswordAuthentication no # if want to disable interactive logon
  • Restart sshd:
    $ sudo /etc/init.d/ssh restart
  • Use the saved private key in PuTTY:
    PuTTY Configuration -> Connection -> SSH -> Auth -> Private key file for authentication,
    then load the private key. Or use PAGEANT to load this automatically.
  • Change passphrase:
    If it's already converted to PuTTY format, use PuTTYgen.exe to convert it back to OpenSSH format, then
    $ ssh-keygen -p
    Enter file in which the key is (id_rsa):...

Reference:

Friday, December 5, 2008

'tree' script under Linux/Unix/Cygwin

A simple script to traverse all the directories and do whatever you want. The byproduct is a MS-DOS tree command.
#!/bin/bash

listAll() {
    local f
    local i=$1

    for f in `ls -1`; do    # 1 file per line
        if [ -f "$f" ]; then
            indent $i
            echo "|- $f"
            if [ "$COMMAND" != "" ]; then
                IFS=$oIFS
                $COMMAND "$f"
                IFS=$nIFS
            fi
        elif [ -d "$f" ]; then
            indent $i
            echo "+- $f"
            let i+=$INDENTS
            cd "$f"
            listAll $i
            cd ..
            let i-=$INDENTS
        fi
    done
}

indent() {
    local i=0
    while (( i < $1 )) # or: while [ i -lt $1 ]
    do
        echo -n " "
        let i+=1
    done
}

echo "Usage: shred-tree [-u]"
echo "-u: shred; otherwise just list"
echo

if [ "$1" = "-u" ]; then
    COMMAND="" # put your command here, eg. ls -l
fi

# space delimitered:
oIFS=$IFS   

# \n delimitered:
nIFS='
'

IFS=$nIFS   # For file names containing spaces
INDENTS=3
listAll 0

Sunday, November 9, 2008

Install Mercurial 1.0.2 on Ubuntu 8.1 server using source code package

(Using root recommended)

If compiler and python not installed:
apt-get install build-essential python-dev
tar xvf mercurial-1.0.2.tar.gz
cd mercurial-1.0.2
make install
To verify,
hg debuginstall
Hopefully, you'll see

Checking encoding (UTF-8)...
Checking extensions...
Checking templates...
Checking patch...
Checking commit editor...
Checking username...
No username found, using 'root@hubuntus' instead
(specify a username in your .hgrc file)
No problems detected


And that's it.

Ref: http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall

Sunday, November 2, 2008

Install vmware-tools on Ubuntu 8.1 desktop

Installing vmware tools on Ubuntu 8.10 seems not a piece of cake these days. If you install the vmware-tools that come with vmware workstation 6.0.5, you may end up with a incorrectly configured Ubuntu system that hangs during boot. By searching the internet and customerizing to my own system, here are the steps that finally made it work:
# install vmware-tools on Ubuntu 8.1 desktop
#

# Mount image:
# Select "VM-> install vmware-tools" from vmware server console or:
# mount /dev/cdrom /media/cdrom0

# Don't use the default one by VMware:
# cp /media/cdrom0/VMwareTools-6.0.5-109488.tar.gz /home/tmp
# tar xvf VMwareTools-6.0.5-109488.tar.gz

# Get the latest open-vm-tools
wget http://downloads.sourceforge.net/open-vm-tools/open-vm-tools-2008.10.10-123053.tar.gz?modtime=1223858287&big_mirror=0

tar xvf open-vm-tools-2008.10.10-123053.tar.gz

apt-get update
apt-get upgrade
apt-get dist-upgrade # if there’s a new kernel available
shutdown -r now # if you’ve updated the kernel

apt-get install linux-headers-`uname -r`
apt-get install build-essential
apt-get install libproc-dev libdumbnet-dev libicu-dev
apt-get install libgtk2.0-dev
# Can bypass this:
# apt-get install libxinerama-dev libxrender-dev libxrandr-dev
apt-get install libxtst-dev libxss-dev
# Try to get this lib but the script always complains it's old:
# apt-get install liburiparser-dev
apt-get install libgtkmm-2.4-dev # for
open-vm-tools-2009.07.22-179896

cd open-vm-tools-2008.10.10-123053
./configure --disable-unity
make
cd modules/linux
for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done
cd ../../../
mv -f open-vm-tools-*/modules/linux/*.tar vmware-tools-distrib/lib/modules/source/
cd vmware-tools-distrib/

./vmware-install.pl
If you disabled Shared Folders in your VM settings, you’ll see a message “Mounting HGFS shares: failed”. Just enable shared folders and reboot.
(Update on 3/8/2009: Not successful running VMwareTools-6.0.5-109488's vmware-install.pl with open-vm-tools-2009.07.22-179896: compilation failed as missing header files in that release)

Reference and thanks to:
1. http://diamondsw.dyndns.org/Home/Et_Cetera/Entries/2008/4/25_Linux_2.6.24_and_VMWare.html
2. http://muffinresearch.co.uk/archives/2008/07/13/ubuntu-hardy-setting-up-vmware-tools-from-the-cli/