SSH и telnet к локальному хосту с использованием python
Я новичок в Python, и если вопрос очень nooby, я прошу прощения. Проще говоря, мне нужно написать скрипт, который соединяется с удаленным через ssh, а затем telnets к localhost и выполняет там команду на оболочке.
Я использую Python 2.4.3. Я прочитал много подобных вопросов здесь, и многие люди предлагают использовать такие модули, как Paramiko, Pexpect и т. Д. Однако это не подлежит сомнению - я должен использовать только "родные" библиотеки 2.4.3. Я попытался возиться с модулем подпроцесса, и мне удалось подключиться к удаленной оболочке (однако мне нужно предоставить пароль - и я хотел бы избежать этого, предоставив пароль в сценарии, например) - но все же мне нужно сделать telnet к localhost и выполнить несколько команд в другой оболочке.
Может ли кто-то быть таким добрым и дать мне несколько советов? Заранее спасибо.
TL; DR Я ищу python альтернативу этой команде bash:
./sshpass -p пароль ssh username@$ip -t "(sleep 1;echo " команда "; sleep 1) | telnet localhost $port; выход;bash" >> testing.txt
1 ответ
После простого поиска:
телнет: ссылка
import getpass
import sys
import telnetlib
HOST = "hostname"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()
SSH: ссылка
import pxssh
import getpass
try:
s = pxssh.pxssh()
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login (hostname, username, password)
s.sendline ('uptime') # run a command
s.prompt() # match the prompt
print s.before # print everything before the prompt.
s.sendline ('ls -l')
s.prompt()
print s.before
s.sendline ('df')
s.prompt()
print s.before
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)