私はPythonでparmikoを使ってサーバにsshをやっています。そこから、私はいくつかのデバイスにtelnetし、出力をキャプチャする必要があります。 sshを実行してから、telnetで1台のデバイスにしか接続できませんが、ループから複数のデバイスをtelnetで呼び出すことはできません。私にこれを行う方法を提案してください。 私は、次のサーバからのSSHによるtelnet
私はif文を使用して、直接IP、その作業良いを与えていないですimport paramiko
import telnetlib
ip = ''
port = 42705
username = ''
password = ''
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,port,username,password)
f=open("abc.txt", "r")
x=f.readlines()
i=1
if i < 100:
print i
cmd = "telnet " + x[i]
print cmd
i=i+1
stdin, stdout, stderr = ssh.exec_command(cmd)
stdin.write('''
terminal length 0
show platform
exit
''')
outlines = stdout.readlines()
resp = ''.join(outlines)
print(resp)
を使用しています。しかし、私は同じサーバーから複数のデバイスをtelnetする必要があります。お返事をありがとうございます!
#! /usr/bin/python
import sys
import paramiko
ip=''
port=42705
username=''
password=''
f1=open("abc.txt", 'r')
devices=f1.readlines()
for device in devices:
device = device.rstrip()
print device
command = "telnet " + device
ssh = paramiko.SSHClient()
print command
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port, username, password)
stdin, stdout, stderr = ssh.exec_command(command)
stdin.write('''
primenms
primenms123
terminal length 0
show platform
exit
ls
''')
outlines = stdout.readlines()
resp = ''.join(outlines)
print(resp)
ssh.close()
f1.close()
SSHすることができますが、私はSSHサーバからのtelnetをしていたときに、そののように資格情報のprimenmsとprimenms123を入力:私は今、次のコードを使用してい
ユーザー名とパスワードは正しい資格情報ですが、認証としての表示が失敗しました。どこが間違っていますか?みんな助けて!
に
を変更する必要があり、らは、ループ内でなければなりません。 –
"abc.txt"には、sshサーバ内からtelnetしたいIPアドレスのリストが入っています。また、ループ内でssh.exec_command(cmd)を使用しているときに、適切な資格情報を入力していても、認証に失敗したことがプログラムに表示されます。 – alisha
ループの中にいないときにtelnetコマンドをどのように使用していますか?それがprintステートメントだけであれば、私はそれを使うと言うでしょう。 –