Я пытаюсь подключиться к указанному c центральному серверу, который настроил соединение без пароля со всеми другими серверами, сервер, на котором я сейчас работаю, не имеет доступа к тем, на которых я хочу запускать команды. Поэтому я пытаюсь подключиться к центральному серверу и оттуда ssh
на другие серверы, которые мне нужны для запуска команд. Когда я запускаю это после выполнения ssh
, командная программа зависает и не позволяет выполнять команды на конечном удаленном сервере. В этом случае, скажем, я хочу запустить ifconfig
на конечном сервере 'host.name'.
def get_host_info_linux(self,host,db_engine):
#Create ssh client from paramiko library
client = paramiko.SSHClient()
try:
# Connect to remote host
#logger.info(username_pass)
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='tunel host name', username=f'{db_engine}')
#this command is to do ssh into the server I want to execute commands
ssh_cmd = f'ssh {host.name}'
ssh_std = client.exec_command(ssh_cmd)
if (ssh_std[2].readlines() == []):+
logger.debug(ssh_std[1].readlines()[0])
else:
logger.error(ssh_std[2].readlines())
client.exe_command('ifconfig')
except Exception as e:
logging.error(e)
finally:
client.close()