Python ile SSH bağlantısı kurmamızı sağlayan kütüphane Paramiko’dur. Paramiko ile ilgili detaylı bilgileri buradan bulabilirsiniz.
SSH Nedir?
SSH (Secure Shell), uzaktaki bir bilgisayara güvenli bir şekilde bağlanmak için kullanılan bir protokoldür. Sunuculara, ağlara ve diğer bilgisayar sistemlerine uzaktan erişmek ve bunları yönetmek için kullanılır. SSH, uzak bir bilgisayara bağlanabilir ve komutları yürütebilir, dosya aktarabilir ve hatta GUI uygulamalarını uzaktan çalıştırabilir. Bunun için 22 portunu kullanabilirsiniz.
İstemci ve sunucu arasındaki tüm iletişim şifrelenir, bu da onu uzak sistemlere erişmenin ve yönetmenin güvenli bir yolu haline getirir. SSH’yi kullanmak için, yerel bilgisayarınızda bir istemci programına ve uzak sistemde bir sunucu programına ihtiyacınız vardır. Birçok farklı SSH istemcisi ve sunucusu mevcuttur ve bunlar çoğu işletim sistemi için mevcuttur.
Python Paramiko ile SSH – Uygulama
Paramiko kütüphanesini indirmek için aşağıdaki komutu kullanabilirsiniz.
pip install paramiko
Yukarıda belirtilen komutu çalıştırdıktan sonra kütüphaneyi projemize ekliyoruz.
import paramiko
Kütüphaneyi ekledikten sonra aşağıdaki kod bloğu ile bağlantı kurmayı gerçekleştirebiliriz.
import paramiko
host = '{IP-ADDRESS}'
username = input('[+] SSH Username: ')
passwd = input('[+] SSH Password: ')
print('\n')
def connection():
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, username=username, password=passwd)
while True:
try:
cmd = input("$>")
if cmd == "exit":
break
else:
stdin, stdout, stderr = client.exec_command(cmd)
output = stdout.read()
print(output.decode("utf-8"))
except KeyboardInterrupt:
break
client.close()
if __name__ == '__main__':
connection()
Burada paramiko ile SSH bağlantısı yapmak için bir client oluşturduk. Ardından oluşturduğumuz client’e bağlantı gerçekleştirdik ve komut girişini sürekliliğe bağladık. Özellikle yukarıda belirttiğimiz kullanıcının SSH bağlantısını koparması için if bloğu ile exit yazmasını belirttik. Ayrıca çıkan çıktıların okunabilirliğinin artması için utf-8 formatı ile decode işlemi gerçekleştirdik.
Aşağıdaki ekran çıktımız şu şekildedir:
Python ile ilgili scriptleri ve uygulamaları görmek için buraya tıklayabilirsiniz.