|
|
| |||||||
![]() |
| | Seçenekler |
|
#1
| ||||||
| ||||||
..::Python ile ssh bağlantısı::..Bu dökümanda Python ile uzak ssh sunucularına bağlantı anlatılacaktır. Öncelikle Python ssh2 istemcisini indirip kurmanız gerekir. Python ssh2 istemcisi paramiko'dur. Paramiko'nun ana sitesi adresindedir. Ancak paramiko'nun çalışabilmesi için pycripto modülüne ihtiyacınız olacak. Her iki paketin Fedora sürümlerini aşağıdaki adreslerden elde edebilirsiniz: Paketleri kurduktan sonra python istemcisini çalıştırın. ve paramiko modülünü çağırın: Kod: ++++> import paramiko Kod: ++++> import paramiko
++++> hKeys=paramiko.HostKeys()
++++> hKeys.load("/root/.ssh/known_hosts")
++++> hKeys.lookup("192.168.1.1") Buradan, makina anahtarının olmadığı görülüyor, eğer olsaydı {'ssh-rsa': <paramiko.RSAKey object at 0xb7f26bac>} şeklinde dönecekti. O halde öncelikle, makina anahtarını alıp, /root/.ssh/known_hosts dosyasına kaydetmeliyiz, bunun için: Kod: ++++> t=paramiko.Transport(("192.168.1.1",22))
++++> t.start_client()
++++> host_key=t.get_remote_server_key()
++++> hKeys.add("192.168.1.1", host_key.get_name(), host_key)
++++> hKeys.save("/root/.ssh/known_hosts") Kod: ++++> istemci=paramiko.SSHClient() Kod: ++++> istemci.load_system_host_keys() Şimdi 192.168.1.1 sunucusuna mbaser kullanici adi ve harikapython parolası ile bağlanalım: Kod: ++++> istemci.connect("192.168.1.1", port=22, username="mbaser", password="harikapython") Kod: ++++> stdin, stdout, stderr = istemci.exec_command('date')
++++> stdout.read()
'Fri May 4 12:38:55 EEST 2007\n' Karşı sunucuda istediğiniz komutu çalıştırabilirsiniz. Örneğin, bir kalsö açmak için: Kod: ++++> stdin, stdout, stderr = istemci.exec_command('mkdir /tmp/mbaser')
++++> stdout.read()
''
++++> stderr.read()
'' Kod: ++++> stdin, stdout, stderr = istemci.exec_command('mkdir /mbaser')
++++> stdout.read()
''
++++> stderr.read()
"mkdir: cannot create directory `/mbaser': Permission denied\n" Uzak makinada yapılacak işlerin birçoğunu (oradaki komutları çalıştırmak dışında) sftp bağlantısı ile yapmanız olası, bunun için bir sftp bağlantısı yapalım: Kod: ++++> sftp=istemci.open_sftp() Kod: ++++> dir(sftp) ['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', '_adjust_cwd', '_async_request', '_convert_status', '_cwd', '_expecting', '_finish_responses', '_lock', '_log', '_read_all', '_read_packet', '_read_response', '_request', '_send_packet', '_send_server_version', '_send_version', '_write_all', 'chdir', 'chmod', 'chown', 'close', 'file', 'from_transport', 'get', 'getcwd', 'listdir', 'listdir_attr', 'logger', 'lstat', 'mkdir', 'normalize', 'open', 'put', 'readlink', 'remove', 'rename', 'request_number', 'rmdir', 'sock', 'stat', 'symlink', 'truncate', 'ultra_debug', 'unlink', 'utime'] Kod: sftp.listdir("/home/mbaser")
['.qt', '.bash_history', '.mcop', '.DCOPserver_mbaser.ibu.edu.tr__0', '.local',
'ms_thesis_heat_and_temperature_concepts_test.pdf', '.Xauthority', '.gnome2_private',
'.DCOPserver_mbaser.ibu.edu.tr_:0', '.xsession-errors-:0', 'vergi', '.mozilla', '.ICEauthority',
'Yeo_Zadnik.pdf', '.kde', '.zshrc', 'a.PNG', '.xsession-errors', '.bash_profile', 'vergi.pdf', '.dmrc',
'.bashrc', '.gconfd', 'Maildir', '.bash_logout', '.gnome2', 'Desktop', '.gconf'] Kod: ++++> F=sftp.open("/home/mbaser/Yeo_Zadnik.pdf",'rb') #dosya sanki yerel makinada imiş gibi okunur.
++++> pdfFile=F.read()
++++> F.close()
++++> W=open("/root/Yeo_Zadnik.pdf","wb")
++++> W.write(pdfFile)
++++> W.close() Ya da aynı işlemi get metodu ile yapabilirsiniz: Kod: ++++> sftp.get("/home/mbaser/Yeo_Zadnik.pdf", "/root/Yeo_Zadnik.pdf") Kod: ++++> O=sftp.open("/home/mbaser/.bash_history",'a')
++++> O.write("date\n")
++++> O.close() Kod: ++++> O=sftp.open("/home/mbaser/yeni_dosya.txt",'w')
++++> O.write("Bu dosya python sftp istemcisi ile yazılmıştır")
++++> O.close() Kod: ++++> F=open("/root/dilekce.odt","rb")
++++> binFile=F.read()
++++> F.close()
++++> O=sftp.open("/home/mbaser/dilekce.odt","wb")
++++> O.write(binFile)
++++> O.close() Kod: ++++> sftp.put("/root/dilekce.odt", "/home/mbaser/dilekce.odt") python'u ilk kurcalamaya basladigimda okulun kütüphanesinde ki Mustafa Baser'in kitabı bana kaynak olmuştu bunlarda ondan notlar..Python hızlı ve yetenekli ilk mesajım pythona olsun istedim.. ((: orjinali burda: burdanda PIL (Python Imaging Library, Python Resimleme Kütüphanesi) Rehberi'ne ulaşabilirsiniz..
__________________ ...::ALLaH Sizi TaRzAn'ın Şerrinden Korusun::... ((: Konu TaRzAn tarafından (29-03-2008 Saat 10:34 ) değiştirilmiştir.. Sebep: Yeni konu açmak istemedim zaten pdf.. ((: |
![]() |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Msn ve 11 Eylül Bağlantısı | airweb | Webmaster Genel Konular | 1 | 25-09-2008 02:35 |
| hedef (ICA bağlantısı başlatan) | kadınca | Güvenlik açıkları | 0 | 02-01-2008 11:41 |
| Bir ağ bağlantısı ayarlama | kadınca | İşletim Sistemleri | 0 | 26-12-2007 02:29 |
| Telefon ve PC Bağlantısı | kadınca | Cep telefonu | 0 | 18-12-2007 12:07 |
| Php İle Mysql Bağlantısı | Nurullah_ | PHP | 0 | 07-09-2007 04:38 |