Merhabalar, konu başlığında da belirttiğim gibi Python üzerinden bir SSH bağlantısı gerçekleştirmek ve bunu yaparken kullanıcı adını ve şifreyi, ki şifreyi otomatik girdirmek gibi bir planım var, son kullanıcıya sormak istiyorum. Aslında bunun amacı, birden fazla kullanıcısı olan bir sunucuya girip, bir dosyayı etkinleştirmek. Yani bağlantı kurulabilirse alınan bilgilerle, daha sonrasında bu programın belirteceğim komutu da sunucuya göndermesini istiyorum. Bunun için Paramiko’yu “pip install paramiko” komutuyla indirip kullanmaya çalıştım. Not: Aşağıda verilen kodların parametreleri güvenlik açısından kendi sunucumdan farklıdır.
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ip = “xxx”
port = 22
yetki = input(“Lütfen kullanıcı adını giriniz: “)
if yetki == “x”:
parola = “Bakkal”
ssh.connect(ip,port,yetki,parola,timeout = 30)
elif yetki == “y”:
parola = “Market”
ssh.connect(ip,port,yetki,parola,timeout = 30)
else:
print(“Bir şeyler ters gitti. Lütfen kullanıcı adını kontrol edin”)
stdin,stdout,stderr = ssh.exec_command(”./bot.sh”)
sonuc = stdout.read()
print(sonuc.decode(“utf-8”))
ssh.close()
Bir py dosyası olarak kaydedip, Windows komut satırında çalıştırdığımda kullanıcı adını soran bir şey görüyorum, yazdıktan sonra hiçbir çıktı alamıyorum, hata bile.
Linux üzerinde denediğimde, şöyle bir çıktı aldım:
Exception ignored in: <function BufferedFile.del at 0x7fd69548d8b0>
Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/paramiko/file.py”, line 66, in __
del__
File “/usr/local/lib/python3.8/dist-packages/paramiko/channel.py”, line 1392,
in close
File “/usr/local/lib/python3.8/dist-packages/paramiko/channel.py”, line 991, i
n shutdown_write
File “/usr/local/lib/python3.8/dist-packages/paramiko/channel.py”, line 967, i
n shutdown
File “/usr/local/lib/python3.8/dist-packages/paramiko/transport.py”, line 1846
, in _send_user_message
AttributeError: ‘NoneType’ object has no attribute ‘time’