ubuntu ssh-copy-id : setting ssh tanpa password

Apr 16th, 2010 | Posted by

sebenernya proses ssh ke mirror dapat dipercepat dengan tanpa password. seiring bertambahnya mesin yang kita handle, bertambah pula record password yang ada di pikiran kita. apa yang terjadi jika ada banyak mesin dengan password yang berbeda2? yang paling mungkin saat salah masukin password, kita tanya teman yang lain atau melihat dokumentasi mesin dan password (kalo ada). dan itu pasti makan waktu entah 1-2 menit.

untuk efisiensi waktu, salah satu solusinya adalah penggunaan command ssh-copy-id. ssh-copy-id digunakan untuk mengopikan id yang ada id file [HOME_CLIENT]/ssh/id_rsa.pub ke mesin lain di path [HOME_SERVER]/.ssh/authorized_keys. setelah pengopian dilakukan, setiap kita melakukan dari [CLIENT] ke [SERVER] tidak akan diminta untuk memasukkan password lagi, kecuali id_rsa.pub-nya [CLIENT] yang dikopikan tadi dihapus dari [HOME_SERVER]/.ssh/authorized_keys.

untuk melakukan ssh-copy-id secara hampir bersamaan di seluruh mesin, bisa menggunakan suatu script. daftar ip mesin dan password bisa diletakkan di dalam 1 file (jika user yang kita punya di seluruh mesin sama).

berikut langkah2nya :

install library python-pexpect :

user@computer:$ sudo apt-get install python-pexpect

kemudian siapkan file ~/ipserver.txt yang berisi daftar ip mesin dan passwordnya :

192.168.1.10|password10
192.168.1.11|password11
192.168.1.12|password12

setelah itu, buat suatu file misalnya autossh.py di home folder dan isi dengan code berikut :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
 
ssh_newkey = 'Are you sure you want to continue connecting'
ip = open('~/ipserver.txt', 'r')
# my ssh command line
 
for b in ip:
	iplist		= b.split("|")
	passwordlist	= iplist[1].split("\n")
	ipaddress	= iplist[0]
	password	= passwordlist[0]
 
	p=pexpect.spawn('ssh-copy-id -i .ssh/id_rsa.pub user@' + ipaddress)
 
	i=p.expect([ssh_newkey,'password:',pexpect.EOF])
	if i==0:
		print "I say yes"
		p.sendline('yes')
		i=p.expect([ssh_newkey,'password:',pexpect.EOF])
	if i==1:
		print "I give password " + ipaddress + " " + password,
		p.sendline(password)
		i=p.expect([ssh_newkey,'password:',pexpect.EOF])
	elif i==2:
		print "I either got key or connection timeout"
		pass
	print p.before # print out the result
ip.close()

kemudian jalankan di terminal :

user@computer:$ python ~/autossh.py

udah gitu aja, sekarang coba ssh ke salah satu mesin yang ip-nya ada di ~/ipserver.txt. normalnya sih udah gak diminta masukkan password lagi.

source : http://linux.byexamples.com/archives/346/python-how-to-access-ssh-with-pexpect/

algoritma deret fibonacci

Apr 15th, 2010 | Posted by

nih mumpung masih hangat, salah satu algoritma deret fibonacci :

flowchart :

contoh program :

$limit		= 10;
$fibonacci	= "";
for($i=1;$i<=$limit;$i++){
	if($i == 1){
		$value[$i]=1;
	}else{
		$value[$i]=$value[$i-2] + $value[$i-1];
	}
	$fibonacci .= $value[$i]." ";
}
echo $fibonacci;

output :
1 1 2 3 5 8 13 21 34 55

algoritma segi tiga pascal

Apr 15th, 2010 | Posted by

mumpung masih hangat, berikut ini salah satu contoh algoritma segitiga pascal beserta contoh codingnya di php

flowchart :

contoh program :

$limit	= 6;
$pascal	= "";
for($i=1;$i<=$limit;$i++){
	for($j=1;<=$i;$j++){
		if($j==1 || $j==$i){
			$value[$i][$j] = 1;
		}else{
			$value[$i][$j] = $value[$i-1][$j] + $value[$i-1][$j-1];
		}
		$pascal .= $value[$i][$j]." ";
	}
	$pascal .= "
\n";
}
echo $pascal;

output :

activity diagram by example

Dec 4th, 2009 | Posted by

kasus : koperasi simpan pinjam dan kredit motor

  1. pencatatan data anggota
    setiap anggota baru mengisi formulir keanggotaan. formulir yang sudah diisi wajib dikembalikan ke staff koperasi dan staff koperasi akan membuatkan kartu anggota berikut dengan kartu simpan.

    activity diagram : pencatatan data anggota

    activity diagram : pencatatan data anggota

  2. pembayaran simpanan anggota
    setiap bulan anggota koperasi wajib melakukan pembayaran simpanan (wajib, pokok, atau sukarela) dan setiap melakukan pembayaran akan dicatat di buku simpanan oleh staff koperasi.

    activity diagram : pembayaran simpanan anggota

    activity diagram : pembayaran simpanan anggota

    Read more…

operasi input output

Oct 28th, 2009 | Posted by

1. Proses INPUT OUTPUT
Sebuah Proses memerlukan Input / Output

File Deskriptor

Proses Input Output

Instruksi / Command yang diberikan pada Linux melalui shell disebut sebagai eksekusi program yang selanjutnya disebut proses.
Setiap kali instruksi diberikan, maka linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID ( Process Identity )
Proses dalam linux membutuhkan input dan menghasilkan output.
Dalam konteks Linux input / output adalah :
- Keyboard
- Layar
- File
- Struktur data Kernel
- Peralatan input/output lainnya (network)

2. File DESCRIPTOR
Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui angka yang dimulai dari 0,1,2 dan seterusnya.
Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah :
0 = keyboard ( standar input )
1 = layar ( standar output )
2 = layar ( standar error )

File Deskriptor

File Descriptor

Linux tidak membedakan antara peralatan hardware dan file, Linux memanipulasi peralatan hardware sama dengan file.

Read more…

Tags:

how to install wordpress mu on nginx

Oct 4th, 2009 | Posted by

setting dns server

  1. tambahkan zone sarunkgenk.com di file /etc/bind/named.conf
    user@computer:$ sudo vim /etc/bind/named.conf
    zone "sarunkgenk.com" IN {
    type master;
    file "/etc/bind/db.sarunkgenk.com";
    allow-update { none; };
    };
  2. ubah file /etc/bind/db.sarunkgenk.com
    user@computer:$ sudo vim /etc/bind/db.sarunkgenk.com
    ;
    ; BIND data file for local loopback interface
    ;
    $TTL    604800
    $ORIGIN sarunkgenk.com.
    @       IN      SOA     ns1.sarunkgenk.com. me.cuplis.net. (
    128       ; Serial
    604800         ; Refresh
    86400         ; Retry
    2419200         ; Expire
    604800 )       ; Negative Cache TTL

    IN      NS      ns1.sarunkgenk.com.
    ns1                     IN      A       192.168.22.115
    @                       IN      A       192.168.22.115

    www                     IN      CNAME   @
    *                       IN      A       192.168.22.115
    @                       IN      MX      5 ASPMX.L.GOOGLE.COM.
    IN      MX      10 ALT2.ASPMX.L.GOOGLE.COM.
    IN      MX      1 ASPMX2.GOOGLEMAIL.COM.
  3. cek konfigurasi dns
    user@computer:$ sudo named-checkzone sarunkgenk.com /etc/bind/db.sarunkgenk.com
    zone sarunkgenk.com/IN: loaded serial 128
    OK
  4. restart bind
    user@computer:$ sudo /etc/init.d/bind9 restart
  5. cek hasil
    user@computer:$ dig sarunkgenk.com;
    ; <<>> DiG 9.4.2 <<>> sarunkgenk.com
    ;; global options:  printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22729
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

    ;; QUESTION SECTION:
    ;sarunkgenk.com.            IN    A

    ;; ANSWER SECTION:
    sarunkgenk.com.        604800    IN    A    192.168.22.115

    ;; AUTHORITY SECTION:
    sarunkgenk.com.        604800    IN    NS    ns1.sarunkgenk.com.

    ;; ADDITIONAL SECTION:
    ns1.sarunkgenk.com.    604800    IN    A    192.168.22.115

    ;; Query time: 0 msec
    ;; SERVER: 192.168.22.115#53(192.168.22.115)
    ;; WHEN: Sun Oct  4 15:41:20 2009
    ;; MSG SIZE  rcvd: 82

Read more…