<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Harden custom terminal app using SSH]]></title><description><![CDATA[<p dir="auto">I want to create a custom terminal-based cloudron app and connect to it using SSH. This app will process sensitive data, so I need to think about heightened security. The goal is to allow SSH access only, no public access whatsoever is needed.</p>
<p dir="auto">Are there any good processes I could follow? I was thinking of restricting access only via Cloudron's VPN app, how would I implement this?</p>
]]></description><link>https://forum.cloudron.io/topic/15918/harden-custom-terminal-app-using-ssh</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 15:17:24 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15918.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Sep 2026 09:50:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Harden custom terminal app using SSH on Sun, 06 Sep 2026 09:19:34 GMT]]></title><description><![CDATA[<p dir="auto">Thank you, that gave me something to work through!</p>
]]></description><link>https://forum.cloudron.io/post/129079</link><guid isPermaLink="true">https://forum.cloudron.io/post/129079</guid><dc:creator><![CDATA[ekevu123]]></dc:creator><pubDate>Sun, 06 Sep 2026 09:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Harden custom terminal app using SSH on Fri, 04 Sep 2026 11:26:49 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/ekevu123" aria-label="Profile: ekevu123">@<bdi>ekevu123</bdi></a></p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekevu123" aria-label="Profile: ekevu123">@<bdi>ekevu123</bdi></a> <a href="/post/128997">said</a>:</p>
<p dir="auto">no public access whatsoever is needed</p>
</blockquote>
<p dir="auto">At least a health check path needs to be "exposed" for the app.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekevu123" aria-label="Profile: ekevu123">@<bdi>ekevu123</bdi></a> <a href="/post/128997">said</a>:</p>
<p dir="auto">I was thinking of restricting access only via Cloudron's VPN app, how would I implement this?</p>
</blockquote>
<p dir="auto">With Cloudron 10 you can simply enable VPN protection for an app in the Access settings of the app.<br />
But that only protects the http/s access, not exposed ports.<br />
So if you app exposed e.g.: port <code>2022</code> as the SSH port that will still be accessible publicly even with the VPN protection enabled.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekevu123" aria-label="Profile: ekevu123">@<bdi>ekevu123</bdi></a> <a href="/post/128997">said</a>:</p>
<p dir="auto">think about heightened security</p>
</blockquote>
<p dir="auto">Only allowing ssh key based auth and no passwords for sure.<br />
Also enforcing 2FA on SSH keys might also be an option to make it even more secure.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ekevu123" aria-label="Profile: ekevu123">@<bdi>ekevu123</bdi></a> <a href="/post/128997">said</a>:</p>
<p dir="auto">The goal is to allow SSH access only</p>
</blockquote>
<p dir="auto">One idea that could also help although a little security via obscurity and with the VPN protection of the app.<br />
Hide the SSH daemon behind a NGINX inside the Cloudron app.<br />
This way the only port exposed from the app is e.g.: <code>8080</code> =&gt; Cloudron NGINX <code>443</code> and could even serve a static HTML that can be used for health check in the manifest and also be a "honey pot" so it looks like just a website.<br />
But when you connect to the domain with port <code>443</code> with SSH the NGINX will just route/stream that to the ssh daemon.<br />
I am not 100% sure if that is possible with the Cloudron default NGINX setup.<br />
That would need some testing.</p>
]]></description><link>https://forum.cloudron.io/post/128999</link><guid isPermaLink="true">https://forum.cloudron.io/post/128999</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Fri, 04 Sep 2026 11:26:49 GMT</pubDate></item></channel></rss>