Public/Private Key Kullanarak SSH Bağlantısı Kurma

SSH server’ın kurulu olduğundan emin olmak için:
sudo apt-get install openssh-server

Key oluşturmak için;
sudo ssh-keygen -t rsa

Tüm sorular enter’a basılarak geçilebilir veya key’in kaydedileceği yer ve şifre belirlenebilir.
Ekstra not: ssh-keygen komutunda -b parametresi kullanılıp kaç bit şifreleme olacağı belirlenebilir. (-b 2048 gibi)

İşlem sonunda public key “~/.ssh/id_rsa.pub” path’inde olacak. Bu dosyanın içeriği kopyalanıp uzak sunucudaki “~/.ssh/authorized_keys” dosyasına eklenebilir. Bu iş kısaca aşağıdaki komutla da yapılabilir.
cat ~/.ssh/id_rsa.pub | ssh user@server 'umask 077; cat >>.ssh/authorized_keys'

Bu işlemler tamamlandıktan sonra bağlantınızı kontrol edebilirsiniz;
ssh user@server

~/.ssh/config dosyasına server bilgilerini eklenerek bir alias oluşturulabilir.
sudo nano ~/.ssh/config

Her bir server için aşağdaki satırlar eklebebilir;
Host benimsunucum
Hostname 127.0.0.1
Port 3022
User ubuntu

Burada host herhangi bir isim, hostname server IP’si, port bağlanılan port numarası (eğer standart 22 kullanılıyorsa yazılmasına gerek yok) ve user da sunucuya bağlanmak için kullanılan kullanıcı adıdır.

Bunlar dosyaya eklenip kaydedildikten sonra şu komutla direkt bağlantı yapılabilir;
ssh benimsunucum
.

Tags: , , ,

Yorum Yaz

Linux Sistemlerde Başlangıçta Çalıştırılacak Script Ekleme

Script’i yaratmak için;
sudo nano /etc/init.d/bootjob.sh

İçine;
#!/bin/bash
# buraya çalıştırmak istediğiniz komutları yazabilirsiniz.

Ctrl + x yaparak kaydedip çıkın.

Executable olduğundan emin olmak için;
chmod +x /etc/init.d/bootjob.sh

Son olarak;
update-rc.d bootjob.sh defaults 99

Buradaki 99 işlemin öncelik sırasını belirtiyor. Tüm işlemleri görmek için;
ls –l /etc/rc3.d/

Not: Ubuntu 12.04 üzerinde denenmiştir.

Tags: , , ,

Yorum Yaz

VirtualBox’da Ubuntu Server’a Guest Additions Kurulumu ve SSH Bağlantısı

Uzatmadan arşivlik yazıya geçiyorum. (Yazı sonunda orijinal kaynakları görebilirsiniz.)

Guest Additions kurmak için;

  1. Sanal makine açıkken menüden Devices > Insert Guest Additions CD Image’ı seçin.
  2. Aşağıdaki komutları aynen girin;
    sudo mount /dev/cdrom /media/cdrom
    sudo apt-get install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)
    sudo /media/cdrom/VBoxLinuxAdditions.run
  3. “Oh yeah!” diye bağırın.

SSH bağlantısı için;

  1. OpenSSH’ı kurun. (Şaka)
    sudo apt-get install openssh-server
    Config dosyanız /etc/ssh/ssh_config yolunda. İsterseniz yedek alın, isterseniz değişiklik yapın ya da siktiredin.
  2. VirtualBox’da makinenizin Settings menüsünü açın. (İsmine sağ tıklayarak vs.)
  3. Network tabında Port Forwarding’ı tıklayın.
  4. Sağdaki butondan (+) yeni kural ekleyin;
    Name: dsadasdsa | Protocol: TCP | Host IP: (boş) | Host Port: 3022 | Guest IP: (boş) | Guest Port: 22
  5. OK’a tıklayıp kaydedin. Makineyi yeniden başlatın.
  6. Test için bilgisayarınızdan terminale şu komutu girin;
    ssh -p 3022 kullaniciadi@127.0.0.1

Olmazsa küfür edin.

Kaynaklar;

  • http://en.ig.ma/notebook/2012/virtualbox-guest-additions-on-ubuntu-server
  • http://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-ubuntu-guest-externally-through-a-windows-host#answer-10532299

Not: Ubuntu 12.04 üzerinde denenmiştir.

Tags: , ,

Yorum Yaz

Alternatif Android Emulator: AndroVM

Bu yazıda, Android SDK ile standart olarak gelen emulatörü ve AVD’yi kullanmaktan bunalanların yüzlerini güldürecek bir alternatif tanıtacağım. Şu ana kadar gördüğüm en iyi alternatif olan AndroVM’yi.

Konuyu şu başlıklara ayırdım;

Bir an önce kullanıma geçmek için kurulum adımına atlayabilirsiniz.
[Yazının tamamını okumak için buraya tıklayın...]

Tags: , , , , , ,

Yorumlar (1)

Windows 7 Kullanıcı İzinleri Hatasının Çözümü

Geçenlerde GCC ile basit bir C kodu derlemeye çalışırken, bir defa exe oluşturduktan sonra, tekrar derleme yapmayı denedim ve hata aldım. Hataya göre üzerine yazmaya çalıştığım exe’ye erişimim yoktu veya başka bir işlem tarafından kullanılıyordu. Biraz incelemeden sonra, bu hatanın, yeni oluşturulan exe dosyasına hiçbir iznin atanmamasından kaynaklandığını anladım. Üstüne üstlük bu yeni oluşturulan dosyalar açık görünüyor ve normal yollarla silinemiyorlardı. Bir süre sonra benzer bir hatayı, Microsoft Visual Studio 2010 ile de aldım. İlgili uygulamaları yönetici olarak çalıştırmak da fayda etmiyordu.

Uzun süre hatanın sebebini tespit etmeye çalıştıktan sonra, şu anda linkini bulamadığım bir kaynakta (Visual Studio bugtracker’ı ya da Stackoverflow olması lazım) bir öneri gördüm. Bu öneri, Windows’un “Uygulama Deneyimi (Application Experience)” servisinin kapatılmasının bu hataya yol açabildiğini ve servisi başlatmanın hatayı çözebileceğini söylüyordu. Öyle de oldu.

İşin komik tarafı, yüzlerce kişinin aynı hatayı Visual Studio bugtracker’ına bildirmesi ve Windows 7 forumları üzerinde dile getirmesine rağmen, Microsoft’un bu konuda hiçbir şey yapmaması, hatta bu bildirimleri olumlu sonuçlanmış gibi gösterip sineye çekmesi. Sebep olarak da “hatanın kendileri tarafından tekrar üretilebilir olmamasını” gösteriyorlar. Buna rağmen bir kullanıcı buna çözüm bulabilmiş. Bu da Microsoft rezilliği.

Benim tespit edebildiğim kadarıyla hata GCC ve Visual Studio ile çalışırken oluşabiliyor. Benzer bir durum yaşıyorsanız, kontrol etmenizde fayda var;

Çalıştır > services.msc > Uygulama Deneyimi > Sağ tıklayıp özelliklerden başlangıç türünü “Otomatik” yapın, Uygula dedikten sonra aktif olacak Başlat butonuna basın ve Tamam’a tıklayın. Servis çoktan çalışır durumda ise karşılaştığınız hata bununla ilişkili değil demektir.

Tags: , , , , , , , ,

Yorum Yaz

Checker Plus for Gmail - Chrome Eklentisi

Daha önce şuradaki yazımda bir Chrome eklentisi yazacağımdan bahsetmiştim. Ben işler arasında yuvarlanırken yazılmışını buldum :)

Checker Plus for Gmail eklentisi, Google Chrome’a eklendikten sonra isteğinize göre 15-60 saniyede bir Gmail hesabınızı kontrol ederek gelen mail’lerden haberdar eder. Üstelik arkaplanda çalışan uygulamalara izin verirseniz (İngiliz anahtarı > Ayarlar > Gelişmiş > Arkaplan uygulamalarına izin ver) Chrome kapandıktan sonra dahi saatinizin yanında bir simge olarak kalıp çalışmaya devam eder. Şu an piyasadaki en iyi Gmail kontrol eklentisi diyebilirim.

Bazı öne çıkan özellikleri;

  • Arkaplanda çalışabilme
  • Sesli ve/veya pop-up ile uyarı
  • Birkaç Gmail hesabı bağlayabilme
  • Gmail hesabınızdan sadece istediğiniz etiketleri/klasörleri kontrol edebilme
  • Gmail sayfasını açmadan gelen mail’i kontrol edebilme

Daha fazla uzatmadan sizi uzantıyla başbaşa bırakıyorum; Checker Plus for Gmail

Tags: , , ,

Yorum Yaz

Google Translate API Artık Ücretli

Google Translate‘in geliştiricilere ücretsiz olarak sunduğu servisi, şurada da duyurulduğu üzere, 1 Aralık 2011 tarihinde kapatıldı. Google Translate API’sini kullanmaya devam etmek isteyenlerin, v2 API‘ye geçip, ücret ödemesi gerekecek. Servisin şu andaki fiyatlandırması, 1 milyon karakter için 20$. Aylık 50 milyondan fazla karakter çevirisine ihtiyacı olacakların irtibata geçmesi söylenmiş.

Bu hareketin sebebi, yine Google’ın duyurularına göre, bu servisin suistimal edilmesiymiş. Karşınızda Google gibi sınırsız kaynakları olan bir şirket olunca, insanlar “suistimal” edilebileceğine pek inanmıyorlar haliyle. Bloglarda Google’ın bunu sadece para için yaptığı iddiaları baş gösterdi bile.

Eski API kullanımdan kaldırılınca, haliyle bu API’yi kullanan uygulamalar ve internet siteleri de çalışmaz hale geldi. Çok sık kullanma ihtiyacı hissettiğim Sağ Tıkla ve Çevir Chrome uzantısı da bu uygulamaların içinde. Ben de bu uzantıyı model alarak alternatif bir uzantı yazmak için kolları sıvadım. Bir dahaki yazıda tutorial olarak yayınlamayı düşünüyorum.

Tags: , , , ,

Yorumlar (1)

Php ile Türkçe Diziyi Alfabetik Sıralama

Küçük ama etkili bir ipucu ile sıralama için kullandığımız sort() benzeri fonksiyonlarda oluşan Türkçe karakter problemini çözebilirsiniz.

Sorunun kaynağı; sort fonksiyonunu direkt olarak kullandığımızda php çekirdeği varsayılan olarak İngilizce dilini referans alır. Haliyle İngilizce'de olmayan bir harf ile başlayan kelimeler, bu fonksiyon için harf yerine özel bir karaktermiş gibi görünür. Türkçe harf ile başlayan kelimeler, kullanılan fonksiyona göre, dizinin sonuna ya da başına yığılır.

Çözüm; php çekirdeğine küçük bir kodla Türkçe dilini de kullandığımızı söyleriz.

Örnek;

PHP:
  1. setlocale(LC_ALL,'TURKISH');
  2. $dizi = array('y','r','s','ö','a','ç','b','ğ','x');
  3. sort($dizi,SORT_LOCALE_STRING);
  4. print_r($dizi);

1. satırda yerel dilin Türkçe olduğunu bildiriyoruz ve 3. satırda karşılaştırma yaparken yerel dilin göz önünde bulundurulmasını söylüyoruz.

Notlar;
* setlocale fonksiyonunu kullanırken girdiğimiz LC_ALL argümanı ile sıralama fonksiyonu dışında bazı fonksiyonların da Türkçe'yi referans almasını sağlarız. Sadece string karşılaştırmalarında bunun olması isteniyorsa LC_ALL yerine LC_COLLATE kullanılmalı.
* SORT_LOCALE_STRING standart bir argümandır. Daha geniş bilgiyi php.net'deki ilgili başlıkta bulabilirsiniz.
* Aynı koşullar daha önce anlattığım rsort, asort ve arsort fonksiyonları içinde geçerlidir.
* String karşılaştırılmasında kullanılacak dilin Türkçe olduğunu bildirmek, x, w, q gibi Türkçe'de olmayan harflerin sıralanmasında bir problem yaratmaz.

Tags: , , , , ,

Yorumlar (1)

Ücretsiz Bağımsız Cron Servisi - SetCronJob

SetCronJob cron desteği alamayanlar için ücretsiz bir alternatif. Siteye saniyeler içinde üye olup hizmetten yararlanmaya başlayabiliyorsunuz. Ücretsiz üyeliği tercih ederseniz vereceğiniz link minimum 5 dakikada bir çalıştırılıyor, ücretli üyelik ile bu süre 1 dakikaya iniyor. Ücret de cüzi bir miktar, yıllık 5 dolarcık. Şimdiden sık kullanılanlarda üst sıralara yerleştirdim, umarım sizin de işinize yarar :)

Bitirmeden bilmeyenler için cron'u da şöyle anlatayım; örneğin bir haber botu yazdınız ve 5 dakikada bir herhangi bir kaynaktan haberleri çekmesini istiyorsunuz, bunun için 5 dakikada bir ftp'ye yüklediğiniz bir dosya çalıştırılmalı. İşte bu noktada cron devreye giriyor. Cron'a (eğer sunucunuz destekliyorsa) o dosyayı gerekli periyotta çalıştırması görevini ekliyorsunuz ve işi sizin için yapıyor.

SetCronJob.com

Tags: , , , , , , ,

Yorumlar (2)

MySQL Veritabanında SQL ile Collate Değiştirme

Benim yaşadığım bir problemi siz de yaşamayın diye yazıyorum. Sunucunuzda veritabanı oluştururken collate (karşılaştırma) belirlemenize izin verilmiyor olabilir. Collate hemen hemen veritabanının hangi dilde okunup yazılacağını belirten değer anlamına gelir. Eğer seçmenize izin verilmiyorsa varsayılan değer atanıyordur, böyle bir durumda da Türkçe karakterlerle işlem yapmakda sıkıntı çekebilirsiniz. İşte bu sorunu gidermek için yapacağınız şey sadece küçük bir sql satırı sorgulatmak. Sql cümleciğini ve açıklamaları aşağıda veriyorum, kolay gelsin.

Veritabanınıza phpMyAdmin veya sunucunuzun sağladığı hizmet ile bağlanın. SQL sekmesie geçin ve aşağıdaki kodu sorgulatın. Burada dil tabloda kullandığınız dil olacaktır. Türkçe karakterler için utf8 yada latin5_turkish_ci kullanılır.

SQL:
  1. ALTER DATABASE db_adi COLLATE latin5_turkish_ci

db_adi yazan yeri veritabanı adınızla değiştirin, gerekli ise karakter setini de değiştirin.

Tags: , , , , , , , ,

Yorumlar (4)