Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SSHGuard v0.1

SSHGuard是SSH登录的动态白名单保护器,它使用Google Authenticator进行动态验证。

SSHGuard is a dynamic whitelist protector for SSH logins. It utilizes Google Authenticator for dynamic verification.

作者 Author

winger[gnusec]

特性 Features

  • SSH登录白名单保护

  • 使用Google Authenticator进行动态验证

  • 可自定义配置

  • SSH login whitelist protection

  • Google Authenticator for dynamic verification

  • Customizable configuration

配置 Configuration

你可以在cfg.ini中自定义你的配置,包括secret、通讯加密密钥、端口等相关设置。

You can customize your configuration in cfg.ini with secret, communication encryption key, port, and other related settings.

开始使用 Getting Started

1. 构建 Build

你可以编译源代码,或者使用预编译的版本。

You can either compile the source code or use a pre-compiled version.

Linux|OSX版本 Version:

nim c --passL:-static --opt:speed --threads:on -d:release client.nim
nim c --passL:-static --opt:speed --threads:on -d:release server.nim

Windows版本 Version:

Linux下的交叉编译方法:

Cross-compilation method for Linux

sudo apt-get -y install mingw-w64
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release server.nim
nim c --os:windows --cpu:amd64 --gcc.exe:x86_64-w64-mingw32-gcc --gcc.linkerexe:x86_64-w64-mingw32-gcc --passL:-static --opt:speed --threads:on -d:release client.nim

2. 准备系统环境 Prepare the System Environment

运行前,准备好系统环境:

Before running, prepare the system environment:

echo "">/etc/hosts.allow
echo "sshd: ALL">/etc/hosts.deny

3. 修改配置文件 Modify the Configuration File

在修改好cfg.ini配置文件(确保修改'secret'和'ip'参数)之后,分别在服务器端和客户端运行程序。

After modifying the cfg.ini configuration file (ensure to modify the 'secret' and 'ip' parameters), run the program separately on the server-side and client-side.

在cfg.ini文件中:

'secret'是你的独有密码

'ip'是SSH服务器的公网IP,这个参数是给client使用的,服务器端用不到,服务器端默认监控所有接口。

In cfg.ini file:

'secret' is your unique password

'ip' is the public IP address of the SSH server. This parameter is used by the client and is not required on the server-side. By default, the server-side monitors all interfaces.

4. 执行 Execution

首先启动服务器端:

Start the server-side first:

./server

然后运行客户端:

Then run the client-side:

client

社区讨论组 Community Discussion Group

Discord:

https://discord.gg/3WnegcP5TK

微信 WeChat

GNUSEC

许可证 License

SSHGuard使用GPL-3.0许可证,详情请查看LICENSE文件。

SSHGuard is under the GPL-3.0 license. See the LICENSE file for details.

About

SSH登录动态白名单保护器 SSH Login Dynamic Whitelist Protector

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages