Created
January 9, 2024 19:16
-
-
Save siasur/91da58038eaae52684ce78d2d5d67deb to your computer and use it in GitHub Desktop.
GrayHack, better ssh command tool
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Usages: ssh (user@)ip(:port) -p pass | |
// * ssh -p pass (user@)ip(:port) | |
// * ssh -h|-H|-? | |
//Notice: Do NOT replace your default ssh tool with this script if you make use of Map.exe | |
// Copyright notice: I've written it, you use it however you like, giving credits would be nice, but I don't require it. | |
// If you do improve it, I would love to know about it. But that too is not required. | |
usageHint = "<b>Usage: "+program_path.split("/")[-1]+" <i>(user@)</i>[ip]<i>(:port) (-p pass)</i></b>" | |
if params.len != 1 and params.len != 3 then exit("<color=#f00>"+usageHint+"</color>") | |
connection = null | |
username = active_user | |
password = null | |
host = null | |
port = 22 | |
if params.len == 3 then | |
if params[0] == "-p" then | |
password = params[1] | |
connection = params[2] | |
else if params[1] == "-p" then | |
password = params[2] | |
connection = params[0] | |
else | |
exit("<color=#f00>"+usageHint+"</color>") | |
end if | |
else | |
if params[0] == "-h" or params[0] == "-?" or params[0] == "-H" then exit(usageHint) | |
connection = params[0] | |
end if | |
hostStartIndex = 0 | |
hostEndIndex = connection.len | |
indexUsername = connection.indexOf("@") | |
if indexUsername then | |
username = connection[0:indexUsername] | |
hostStartIndex = indexUsername+1 | |
end if | |
indexPort = connection.indexOf(":") | |
if connection.indexOf(":") then | |
port = connection[indexPort+1:connection.len].to_int | |
hostEndIndex=indexPort | |
end if | |
host = connection[hostStartIndex:hostEndIndex] | |
if typeof(port) != "number" then exit("<color=#f00>Invalid port: " + port+"</color>") | |
if typeof(host) != "string" or host.len < 1 then exit("<color=#f00>Invalid host: "+ host+"</color>") | |
if (typeof(password) != "string") then password = user_input("Enter password: ", true) | |
print("Connecting...") | |
shell = get_shell.connect_service(host, port, username, password, "ssh") | |
if typeof(shell) == "string" then exit(shell) | |
if shell then | |
shell.start_terminal | |
else | |
print("<color=#f00>connection failed</color>") | |
end if |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment