Paramiko kullanarak uzak ana bilgisayarda birkaç komut çalıştırmayı planlıyorum, ancak bir komut çalıştırdıktan sonra ssh oturumu kapatıldı.
kod aşağıda listelenen:ssh oturumu nasıl paramiko kullanarak süresi dolmaz?
from paramiko import SSHClient
import paramiko
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, 22, user, passwd, timeout=3)
stdin, stdout, stderr = ssh.exec_command('uname -a')
Yani kapanmasını SSH oturumu durdurmak için herhangi bir yolu var mı? Ya da paramiko için herhangi bir alternatif var mı?
Güncelleme:
bir Linux sunucuya bağlıyken benim Macbook exec_command
çağıran tutmak başardı, ancak ssh oturumu anahtara bağlandığında bir Linux sunucusunda bir kez exec_command
sonra otomatik olarak kapatılır ve bir yükseltilmiş
SSHException: paramiko.ssh_exception.SSHException: SSH session not active
>>> print ssh.get_transport()
>>> <paramiko.Transport at 0xf00216d0L (unconnected)>
>>> print ssh.get_transport().is_active()
>>> False
>>> print ssh.get_transport().is_authenticated()
>>> False
aktif her zaman paramiko sSH oturumu tutmak için herhangi bir yolu var mı?
(istemci modu) iplik başlangıç: 0x2657e10L
Bağlandı (versiyon 1.99, istemci Comware-5,20)
KEX algos: [u'diffie-Hellmanparamiko ayıklama modu bilgileri
şöyle döndü -group-exchange-sha1 ', u'diffie-hellman- grubu14-sha1', u'diffie-hellman-group1-sha1 '] sunucu anahtarı: [u'ssh-rsa'] istemci şifrelemek: [u'aes128-cbc ', u'3des-cbc', u'des-cbc '] sunucu şifrelemek: [u'aes128-cbc', u'3des-cbc ', u'des-cbc'] istemci mac: [u'hmac-sha1 'u'hmac-sha1-96', u'hmac-md5 ', u'hmac-md5-96'] sunucu mac: [u'hmac-sha1 ', u'hmac-sha1-96', u'hmac -md5 ', u'hmac-md5-96'] istemci sıkıştırması: [u'none '] sunucu sıkıştırması: [ u'none '] lang: [u' '] sunucu lang: [u' '] kex izler? Yanlış
Kabul edilen şifreler: local = aes128-cbc, uzak = aes128-cbc
kex diffie-hellman-group14 kullanarak -sha1; sunucu anahtar tipi ssh-rsa; şifre: yerel aes128-cbc, uzak aes128-cbc; mac: yerel hmac-sha1, uzak hmac-sha1; sıkıştırma: yerel yok, uzaktan kumanda yok
Yeni anahtarlara geç ...
userauth is OK
Kimlik doğrulama (parola) başarılı!
[Chan 0] Maksimum paket içinde: 32768 bayt
içinde [Chan 1] Maksimum paket: üzerinden paket 32768 bayt
[Chan 0] En: açılan 32496 bayt
Secsh kanal 0.
Secsh kanalı 2 açma hatası:
Kaynak sıkıntısı: Kaynak sıkıntısı
[chan 0] Sesch kanalı 0 isteği Tamam
[chan 0] EOF gönderilen (0)
Komut dosyasına bundan daha fazlası var mı? Exec_command' işlevini çağırabiliyor olmalısınız. – tdelaney
Merhaba? Komutta birkaç komut mu koşuyorsunuz yoksa her birinde bir komutla birkaç komut dosyası çalıştırıyor musunuz? – tdelaney
MacBook'umda exec_command'ı çağırmayı başarabiliyordum, ancak bir Linux sunucusunda çalışmadı ve bir SSHException geliştirdi: paramiko.ssh_exception.SSHException: SSH oturumu etkin değil. Mac'te Python sürümü 2.7.11 ama Linux sunucusu 2.6.6. @tdelaney –