113 lines
2.6 KiB
Bash
Executable file
113 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# karsi sunuculara otomatik baglanmayi ayarlar ve bazi kucuk ayarlar yapar. bashrc ye bazi aliasler ekler v.b.
|
|
|
|
|
|
cp $0 /bin
|
|
cp $0 /bin/SSH2.SH
|
|
|
|
function checksshkey(){
|
|
echo "sskey hallediliyor..";
|
|
ssayi=`cat ~/.ssh/id_dsa.pub | wc -l `
|
|
|
|
if [ $ssayi -eq 0 ] ; then
|
|
echo "ssh keyiniz yok, olusturuluyor..";
|
|
ssh-keygen -t dsa
|
|
fi
|
|
|
|
if [ ! -f ~/.ssh/id_dsa.pub ] ; then # bash or calismadi, solarisde, bu nedenle ayri bir if yazildi.
|
|
echo "ssh keyiniz yok, olusturuluyor..";
|
|
ssh-keygen -t dsa
|
|
fi
|
|
|
|
echo "karsi sunucuya keyiniz kopyalaniyor-copying key to remote server";
|
|
ssh-copy-id -i ~/.ssh/id_dsa.pub $ip
|
|
if [ $? -gt 0 ] ; then #ssh-copy-id komutu yoksa, dandik solaris gibi.
|
|
oncebaglan=true
|
|
scp ~/.ssh/id_dsa.pub $ip:/
|
|
echo "karsi sunucuya kopyalandi, karsi sunucuda sunu calistirin:"
|
|
echo "mkdir ~/.ssh/";
|
|
echo "cat /id_dsa.pub >> ~/.ssh/authorized_keys"
|
|
echo
|
|
else
|
|
oncebaglan=false
|
|
fi
|
|
}
|
|
|
|
if [ "$1" == "" ] ; then
|
|
echo "kull: $0 ip ";
|
|
exit;
|
|
fi
|
|
|
|
ping -c 2 $1
|
|
|
|
ip="$1"
|
|
sayi=`grep $ip /etc/hosts | wc -l `
|
|
if [ $sayi -eq 0 ] ; then # hosts dosyasinda yoksa ekle, hizli baglanma icin
|
|
echo "$ip uzakmakine`date +%H%M%S`" >> /etc/hosts
|
|
echo "hosts dosyasina eklendi."
|
|
fi
|
|
|
|
|
|
liste="/etc/sshyapilanyerler"
|
|
sayi=`grep "$1" $liste | wc -l`
|
|
|
|
function gerekli_dosyalari_kopyala(){
|
|
echo "gerekli dosyalar karsiya kopyalaniyor.. "
|
|
scp $0 $1:/bin/
|
|
scp $0 $1:/bin/SSH2.SH
|
|
scp /bin/bekle.sh $1:/bin/
|
|
scp /bin/zorlaoldur.sh $1:/bin/
|
|
scp /bin/zmore.sh $1:/bin/
|
|
scp /bin/gozat.sh $1:/bin/
|
|
scp /bin/bashrc_ornek $1:/root/.bashrc
|
|
scp /bin/bashrc_ornek $1:/bin/bashrc_ornek
|
|
}
|
|
|
|
function baglan(){
|
|
echo "karsiya baglaniyor-connecting to remote: $1"
|
|
if [ "$2" == "" ] ; then # solarisde info verme, sifre soruyor ayrica
|
|
ssh $1 "cat /etc/*ele*"
|
|
fi
|
|
|
|
ssh $1
|
|
}
|
|
|
|
if [ $sayi -eq 0 -o "$2" == "-r" ] ; then
|
|
|
|
if [ "$2" == "" ] ; then
|
|
echo "this ssh is new, do you want to setup automatic login?(y/n) bu ssh yeni, otomatik dosya olusturulsun mu ? (e/h)"
|
|
read cevap
|
|
else
|
|
cevap="e"
|
|
fi
|
|
|
|
if [ "$cevap" == "e" -o "$cevap" == "y" ] ; then
|
|
sed -i "s/$ip//" /etc/sshyapilanyerler # zaten varsa, temizle
|
|
checksshkey;
|
|
echo
|
|
echo "give it a filename/dosyaadi:"
|
|
read dosyaadi
|
|
|
|
echo "ssh $ip \"cat /etc/*ele*\"" > /bin/$dosyaadi.sh
|
|
echo "ssh $ip" >> /bin/$dosyaadi.sh
|
|
chmod a+x /bin/$dosyaadi.sh
|
|
echo "$ip" >> $liste
|
|
|
|
if $oncebaglan ; then # solarisde once baglanmak gerekiyor.. yoksa bisuru sifre soruyor.
|
|
baglan $ip "noinfo"
|
|
#gerekli_dosyalari_kopyala $ip
|
|
else
|
|
#gerekli_dosyalari_kopyala $ip
|
|
baglan $ip
|
|
fi
|
|
|
|
exit;
|
|
else
|
|
baglan $ip
|
|
exit
|
|
fi
|
|
|
|
fi
|
|
|
|
#gerekli_dosyalari_kopyala $ip
|
|
baglan $ip
|