Skip to content

Commit

Permalink
fix: rdp固定名称问题
Browse files Browse the repository at this point in the history
  • Loading branch information
feng626 committed Oct 22, 2021
1 parent 34583b3 commit 5fa2657
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 15 deletions.
27 changes: 19 additions & 8 deletions Mac/JumpServer.py
Original file line number Diff line number Diff line change
@@ -1,47 +1,58 @@
# -*- coding: utf-8 -*-
import os
import re
import sys
import json
import base64
import platform
import subprocess

'''
{
"protocol": "ssh",
"username": "laoguang",
"token": "xxx", // 认证 授权
"config": "full address:s:rdjumpserver.fit2cloud.com:33390"
"filename": "{}-{}-jumpserver".format(username, name),
"protocol": "ssh",
"username": "laoguang",
"token": "xxx", // 认证 授权
"config": "full address:s:rdjumpserver.fit2cloud.com:33390"
}
'''
BASE_DIR = os.path.dirname(__file__)


def remove_current_rdp_file():
re_rdp_file = re.compile(r'.*\.rdp$')
for filename in os.listdir(BASE_DIR):
if re_rdp_file.search(filename):
os.remove(os.path.join(filename))


class Rouse(object):
def __init__(self, data):
self.filename = data.get('filename', 'jms')
self.protocol = data['protocol']
self.config = data['config']

def handle_ssh(self):
pass

def handle_rdp(self):
file_path = os.path.join(BASE_DIR, 'client.rdp')
file_path = os.path.join(BASE_DIR, self.filename + '.rdp')
with open(file_path, 'w') as f:
f.write(self.config)
if platform.system().lower() == 'windows':
os.system('mstsc.exe {0}'.format(file_path))
subprocess.call('mstsc.exe {0}'.format(file_path), shell=True)
else:
os.system('open {0}'.format(file_path))
subprocess.call('open {0}'.format(file_path), shell=True)

def run(self):
getattr(self, 'handle_' + self.protocol)()


if __name__ == '__main__':

args = sys.argv
if len(args) != 1:
d = args[1].replace('jms://', '')
d = json.loads(base64.b64decode(d).decode())
remove_current_rdp_file()
instance = Rouse(d)
instance.run()
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ JumpServer 客户端,目前仅 支持 RDP 的本地拉起,下一步计划,

## 测试

url link: jms://eyJwcm90b2NvbCI6ICJyZHAiLCAidXNlcm5hbWUiOiAibGFvZ3VhbmciLCAidG9rZW4iOiAieHh4IiwgImNvbmZpZyI6ICJmdWxsIGFkZHJlc3M6czp5eS5maXQyY2xvdWQuY29tOjMzMzg5XG51c2VybmFtZTpzOmZlbmdxaWFuZ3xTNEY2RUZzTVo3TjZVTVBZcFRWdzJQSFVSZ3dKVkpNcHAzZEZcbnNjcmVlbiBtb2RlIGlkOmk6MFxudXNlIG11bHRpbW9uOmk6MVxuc2Vzc2lvbiBicHA6aTozMlxuYXVkaW9tb2RlOmk6MFxuZGlzYWJsZSB3YWxscGFwZXI6aTowXG5kaXNhYmxlIGZ1bGwgd2luZG93IGRyYWc6aTowXG5kaXNhYmxlIG1lbnUgYW5pbXM6aTowXG5kaXNhYmxlIHRoZW1lczppOjBcbmFsdGVybmF0ZSBzaGVsbDpzOlxuc2hlbGwgd29ya2luZyBkaXJlY3Rvcnk6czpcbmF1dGhlbnRpY2F0aW9uIGxldmVsOmk6MlxuY29ubmVjdCB0byBjb25zb2xlOmk6MFxuZGlzYWJsZSBjdXJzb3Igc2V0dGluZzppOjBcbmFsbG93IGZvbnQgc21vb3RoaW5nOmk6MVxuYWxsb3cgZGVza3RvcCBjb21wb3NpdGlvbjppOjFcbnJlZGlyZWN0cHJpbnRlcnM6aTowXG5wcm9tcHQgZm9yIGNyZWRlbnRpYWxzIG9uIGNsaWVudDppOjBcbmF1dG9yZWNvbm5lY3Rpb24gZW5hYmxlZDppOjFcbmJvb2ttYXJrdHlwZTppOjNcbnVzZSByZWRpcmVjdGlvbiBzZXJ2ZXIgbmFtZTppOjBcbnNtYXJ0IHNpemluZzppOjEifQ==
url link: jms://eyJwcm90b2NvbCI6ICJyZHAiLCAidXNlcm5hbWUiOiAibGFvZ3VhbmciLCAidG9rZW4iOiAieHh4IiwgImNvbmZpZyI6ICJmdWxsIGFkZHJlc3M6czp5eS5maXQyY2xvdWQuY29tOjMzMzg5XG51c2VybmFtZTpzOmZlbmdxaWFuZ3xTNEY2RUZzTVo3TjZVTVBZcFRWdzJQSFVSZ3dKVkpNcHAzZEZcbnNjcmVlbiBtb2RlIGlkOmk6MFxudXNlIG11bHRpbW9uOmk6MVxuc2Vzc2lvbiBicHA6aTozMlxuYXVkaW9tb2RlOmk6MFxuZGlzYWJsZSB3YWxscGFwZXI6aTowXG5kaXNhYmxlIGZ1bGwgd2luZG93IGRyYWc6aTowXG5kaXNhYmxlIG1lbnUgYW5pbXM6aTowXG5kaXNhYmxlIHRoZW1lczppOjBcbmFsdGVybmF0ZSBzaGVsbDpzOlxuc2hlbGwgd29ya2luZyBkaXJlY3Rvcnk6czpcbmF1dGhlbnRpY2F0aW9uIGxldmVsOmk6MlxuY29ubmVjdCB0byBjb25zb2xlOmk6MFxuZGlzYWJsZSBjdXJzb3Igc2V0dGluZzppOjBcbmFsbG93IGZvbnQgc21vb3RoaW5nOmk6MVxuYWxsb3cgZGVza3RvcCBjb21wb3NpdGlvbjppOjFcbnJlZGlyZWN0cHJpbnRlcnM6aTowXG5wcm9tcHQgZm9yIGNyZWRlbnRpYWxzIG9uIGNsaWVudDppOjBcbmF1dG9yZWNvbm5lY3Rpb24gZW5hYmxlZDppOjFcbmJvb2ttYXJrdHlwZTppOjNcbnVzZSByZWRpcmVjdGlvbiBzZXJ2ZXIgbmFtZTppOjBcbnNtYXJ0IHNpemluZzppOjEiLCAiZmlsZW5hbWUiOiAidGVzdC1yZHAtanVtcHNlcnZlciJ9

## 打包

Expand Down
24 changes: 18 additions & 6 deletions Windows/JumpServer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import os
import re
import sys
import json
import base64
Expand All @@ -8,25 +9,34 @@

'''
{
"protocol": "ssh",
"username": "laoguang",
"token": "xxx", // 认证 授权
"config": "full address:s:rdjumpserver.fit2cloud.com:33390"
"filename": "{}-{}-jumpserver".format(username, name),
"protocol": "ssh",
"username": "laoguang",
"token": "xxx", // 认证 授权
"config": "full address:s:rdjumpserver.fit2cloud.com:33390"
}
'''
BASE_DIR = os.path.dirname(__file__)


def remove_current_rdp_file():
re_rdp_file = re.compile(r'.*\.rdp$')
for filename in os.listdir(BASE_DIR):
if re_rdp_file.search(filename):
os.remove(os.path.join(filename))


class Rouse(object):
def __init__(self, data):
self.filename = data.get('filename', 'jms')
self.protocol = data['protocol']
self.config = data['config']

def handle_ssh(self):
pass

def handle_rdp(self):
file_path = os.path.join(BASE_DIR, 'client.rdp')
file_path = os.path.join(BASE_DIR, self.filename + '.rdp')
with open(file_path, 'w') as f:
f.write(self.config)
if platform.system().lower() == 'windows':
Expand All @@ -39,10 +49,12 @@ def run(self):


if __name__ == '__main__':

args = sys.argv
if len(args) != 1:
d = args[1].replace('jms://', '')
if d[-1] == '/':
d = d[:-1]
d = json.loads(base64.b64decode(d).decode())
remove_current_rdp_file()
instance = Rouse(d)
instance.run()

0 comments on commit 5fa2657

Please sign in to comment.