SSH bağlantısı kurmak, ama bunu yaparken de kullanıcı adını, eğer gerekirse şifreyi kullanıcıya sormak istiyorum

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’

Selam,

Kodlari kod gorunumunde yazman lazim. Editordeki </> dugmesi veya iki adet ``` satiri arasina gelecek sekilde.

Merhaba,

Linux kullanıcısıyım.
ben kendi bilgisayarımda denedim ve çalıştı kendi ssh ımda.

client = paramiko.SSHClient()

komutunun hemen altına

client.load_host_keys("//home//cihat//.ssh//known_hosts")

yazdım ve bende çalıştı.

Benim kullandığım üninin ssh ında ilk bağlantı kurduğumda bir soru soruyor. Onu yes vs. diye cevaplamışsanız bu keyler sanırım bir dosyaya kaydoluyor. bende kaydolduğu yeri load_host_keys methoduna parametre olarak geçtim.

Eğer hala olmazsa söyleyin ben kendi çalışan kodumu size atayım.

Hayırlı günler.

Edit: bu arada aib haklı