Я много боролся, чтобы это исправить, но мне нужна помощь, потому что у меня такое чувство, что я достиг стены. Это продолжение этой страницы получение Checkpoint VPN SSL Network Extender, работающего в командной строке .
Я попытался включить соединение в сценарий python, используя pty .spawn python функция для подделки терминала для snx двоичного файла, но я не могу установить автоматическое c соединение, как я могу сделать в реальном терминале с помощью этой команды:
snx -s "my_server.com" -u "my_username" <<< my_password
Я написал небольшой сценарий python для иллюстрации:
#!/usr/bin/env python3
import pty
import sys
import os
from io import StringIO
password = False
def main():
print("main begin")
stdout = []
stdin = []
def master_read(fd):
data = os.read(fd, 1024)
stdout.append(data)
return data
def sdtin_read(fd):
data = os.read(fd, 1024)
stdin.append(data)
return data
try:
print("before spawn ------")
status = pty.spawn(['snx', '-s', 'my_server.com', '-u', 'my_username','<<<', '"my_password"'], master_read, sdtin_read)
print("master_read ------")
print( b";".join(stdout) )
print("sdtin_read ------")
print( b";".join(stdin) )
except:
e = sys.exc_info()[0]
f = sys.exc_info()[1]
print("result ------")
print(e)
print(f)
print("main end")
if __name__ == "__main__":
main()
"<<<" в сценарии не учитывается, и я не знаю, как это сделать. сделай это. Моей конечной целью является не жесткое кодирование пароля в скрипте, а создание красивого интерфейса для ввода пароля. </p>
Большое спасибо, если вы можете мне помочь в этом вопросе.