我是 python 新手,在某些情况下,我正在编写一个脚本来“远程登录”设备 IP,如果 telnet 失败,则使用 SSH username@deviceIp ..
对于所有 Telnet IP,它都可以正常工作。但是当我在执行“ssh admin@153.88.127.21”时,下面的代码会失败,并且在尝试 bloc 本身时出现错误,例如 ssh 设备的“socket.error”。
如果 telnet Ip 在 try 块中失败,我希望 ssh 设备进入 else 块。
在我的 Main.py 文件中
try:
#TELNET MODULE CALL
tn= _telnetMOD._telnet(username, password, device)
break
else:
#SSH MODULE CALL
ssh= _sshMOD._ssh(username, password, device)
在 _telnetMod 文件中,我有以下代码可以使用 import telnetlib
def _telnet(_userVar,_passwordVAR, _device):
tn=''
tn = telnetlib.Telnet(_device,23)
#PYTHON VERSION 2.6 AND HIGHER
tn.read_until("Username: ",10)
tn.write(_userVar + "\r")
if _passwordVAR:
tn.read_until("Password: ",10)
tn.write(_passwordVAR + "\r")
return tn
在 _sshMOD 文件中,我有下面的代码失败并且不确定下面的代码
import paramiko
def _ssh(_userVar,_passwordVAR, _device):
ssh=''
ssh= paramiko.SSHClient()
ssh.connect(_device, username=_userVar,password=_passwordVAR)
return ssh