如何解决当我尝试使用自动 ssh 登录发送命令时,输出不正确
我进行了自动 ssh 登录,登录完美无缺,但是当我尝试运行命令并使用 print.before 输出结果时,它没有给我正确的输出。 这是代码:
!/usr/bin/env python3
import pexpect
PROMPT = ['\#','\$']
def send_command(child):
com = 'pwd'
child.sendline(com)
child.expect(PROMPT)
print(child.before)
def connect(host,user,password):
connStr = 'ssh ' + user + '@' + host
child = pexpect.spawn(connStr)
ret = child.expect([pexpect.TIMEOUT,'[P|p]assword: '])
if ret == 0:
print('[-] Error Connecting')
return
if ret == 1:
child.sendline(password)
child.expect(PROMPT)
return child
def main():
host = input('Enter The Host To Target: ')
user = input('Enter SSH username: ')
password = input('Enter SSH password: ')
child = connect(host,password)
send_command(child)
main()
结果是这样的:
b"\x1b[0m\x1b[31m\x1b[39m \x1b[K\x1b[?1h\x1b=\x1b[?2004hp\x08pwd.decode(utf8)\x1b[16D\x1b[1m\] x1b[31mp\x1b[1m\x1b[31mw\x1b[1m\x1b[31md\x1b[1m\x1b[31m.\x1b[1m\x1b[31md\x1b[1m\x1b[31me\x1b[1m\x1b]] [31mc\x1b[1m\x1b[31mo\x1b[1m\x1b[31md\x1b[1m\x1b[31me\x1b[1m\x1b[34m(\x1b[0m\x1b[39m\x1b[1m\x1b]] 31mu\x1b[1m\x1b[31mt\x1b[1m\x1b[31mf\x1b[1m\x1b[31m8\x1b[1m\x1b[34m)\x1b[0m\x1b[39m\x1b[?1l\x1b] \x1b[?2004l\r\r\nzsh: 'u' glob 限定符缺少分隔符\r\n \r\r\x1b]0;root@kali: ~\x07\r\n\r\x1b[0m \x1b[27m\x1b[24m\x1b[J\x1b[34m\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80(\x1b[1m\x1b[34m\x1b[31mroot\xf0\] x9f\x92\x80kali\x1b[0m\x1b[31m\x1b[34m)-[\x1b[1m\x1b[34m\x1b[39m~\x1b[0m\x1b[34m]\r\n\xe2\x94] \x94\xe2\x94\x80\x1b[1m\x1b[34m\x1b[31m"
有人可以帮助我吗?我尝试了很多方法,但都不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。