<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ssh &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/tag/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.smsoft.it</link>
	<description>consigli settimanali su MacOS, GNU/Linux ed Open Source</description>
	<lastBuildDate>Wed, 25 Mar 2026 07:52:18 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=93965</generator>
	<item>
		<title>Navigare da un host non connesso direttamente e che accetta solo connessioni SSH in ingresso</title>
		<link>https://blog.smsoft.it/2025/06/10/navigare-da-un-host-non-connesso-direttamente-e-che-accetta-solo-connessioni-ssh-in-ingresso/</link>
					<comments>https://blog.smsoft.it/2025/06/10/navigare-da-un-host-non-connesso-direttamente-e-che-accetta-solo-connessioni-ssh-in-ingresso/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 10 Jun 2025 08:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[reverse]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[systemd]]></category>
		<category><![CDATA[tinyproxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6768</guid>

					<description><![CDATA[Ho questa configurazione: ovvero l&#8217;Host A può navigare su internet e raggiungere l&#8217;Host B, mentre l&#8217;Host B non è direttamente connesso ad internet e può solo ricevere connessioni ssh in ingresso dall&#8217;Host A. Per poter navigare anche dall&#8217;Host B, l&#8217;unica soluzione è installare un micro-proxy sull&#8217;Host A e poi creare una reverse-ssh dall&#8217;Host A verso ... <a title="Navigare da un host non connesso direttamente e che accetta solo connessioni SSH in ingresso" class="read-more" href="https://blog.smsoft.it/2025/06/10/navigare-da-un-host-non-connesso-direttamente-e-che-accetta-solo-connessioni-ssh-in-ingresso/" aria-label="Per saperne di più su Navigare da un host non connesso direttamente e che accetta solo connessioni SSH in ingresso">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ho questa configurazione:</p>



<pre class="wp-block-code"><code>&#91;internet] &lt;----&gt; &#91;Host A]
                                |----------&gt; &#91;Host B]</code></pre>



<p class="wp-block-paragraph">ovvero l&#8217;Host A può navigare su internet e raggiungere l&#8217;Host B, mentre l&#8217;Host B non è direttamente connesso ad internet e può solo ricevere connessioni ssh in ingresso dall&#8217;Host A.</p>



<p class="wp-block-paragraph">Per poter navigare anche dall&#8217;Host B, l&#8217;unica soluzione è installare un micro-proxy sull&#8217;Host A e poi creare una reverse-ssh dall&#8217;Host A verso l&#8217;Host B.</p>



<p class="wp-block-paragraph">Come micro-proxy sull&#8217;<strong>Host A</strong> possiamo installare <strong>TinyProxy</strong>:</p>



<pre class="wp-block-code"><code>apt install tinyproxy</code></pre>



<p class="wp-block-paragraph">Su cui modifichiamo le impostazioni per lasciarlo in ascolto sulla porta <strong>8888</strong> e da <strong>127.0.0.1</strong>:</p>



<pre class="wp-block-code"><code>apt update &amp;&amp; apt install -y tinyproxy
sed -i 's/^Port .*/Port 8888/'           /etc/tinyproxy/tinyproxy.conf
sed -i 's/^#Listen /Listen /'            /etc/tinyproxy/tinyproxy.conf
sed -i 's/^Listen.*/Listen 127.0.0.1/'  /etc/tinyproxy/tinyproxy.conf
systemctl restart tinyproxy</code></pre>



<p class="wp-block-paragraph">Verifica:</p>



<pre class="wp-block-code"><code>curl -x http://127.0.0.1:8888 https://ipinfo.io/ip
# deve restituire l’IP pubblico di Host A</code></pre>



<p class="wp-block-paragraph">Ora creiamo un <strong>reverse SSH</strong> &#8220;stabile&#8221; HostA → Host B in modo che la <strong>porta 8888 di Host A</strong> diventi accessibile <strong>su Host B</strong> come <code>127.0.0.1:8888</code>.</p>



<p class="wp-block-paragraph">Si può ottenere eseguendo su <strong>Host A</strong>:</p>



<pre class="wp-block-code"><code>ssh -NT -R 8888:127.0.0.1:8888  user@HostB</code></pre>



<p class="wp-block-paragraph">In questo modo viene attivata una socket in ascolto su HostB che fa rispondere direttamente Tinyproxy sull&#8217;HostA</p>



<p class="wp-block-paragraph">Per evitare che la connessione si interrompa al riavvio, la soluzione è autorizzare la connessione caricando la chiave ssh dell&#8217;HostA sull&#8217;HostB e poi usare autossh sull&#8217;HostA come segue:</p>



<pre class="wp-block-code"><code>apt install autossh
autossh -M 0 -NT -R 8888:127.0.0.1:8888 -o "ExitOnForwardFailure=yes" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3"  user@HostB</code></pre>



<p class="wp-block-paragraph">E&#8217; possibile gestire <strong>autossh</strong> con un servizio <strong>systemD</strong>. Su HostA creiamo il file del servizio <strong>/etc/systemd/system/autossh-tunnel.service</strong> in cui inseriamo:</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=Autossh reverse tunnel B → A per apt-cache
After=network.target

&#91;Service]
Type=simple
User=root
Environment=AUTOSSH_GATETIME=0
ExecStart=/usr/bin/autossh -M 0 \
  -o "ServerAliveInterval 30" \
  -o "ServerAliveCountMax 3" \
  -o "ExitOnForwardFailure=yes" \
  -o "StrictHostKeyChecking=accept-new" \
  -N \
  -R 8888:127.0.0.1:8888 \
  user@HostB
Restart=always
RestartSec=10

&#91;Install]
WantedBy=multi-user.target</code></pre>



<p class="wp-block-paragraph">e poi abilitiamo, avviamo e controlliamo il servizio con:</p>



<pre class="wp-block-code"><code>systemctl enable autossh-tunnel.service
systemctl start autossh-tunnel.service
systemctl status autossh-tunnel.service</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Ora verifichiamo su <strong>HostB</strong> se riusciamo a collegarci con:</p>



<pre class="wp-block-code"><code>curl -x http://127.0.0.1:8888  https://example.com</code></pre>



<p class="wp-block-paragraph">chiaramente verrà mostrato un messaggio di errore. Esportiamo quindi le variabili per rendere <strong>globale</strong> il proxy:</p>



<pre class="wp-block-code"><code>export http_proxy=http://127.0.0.1:8888
export https_proxy=http://127.0.0.1:8888
</code></pre>



<p class="wp-block-paragraph">e facciamo un anuova verifica da HostB:</p>



<pre class="wp-block-code"><code>$ curl -x http://127.0.0.1:8888 https://ifconfig.me
# deve restituire sempre l’IP pubblico di Host A</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2025/06/10/navigare-da-un-host-non-connesso-direttamente-e-che-accetta-solo-connessioni-ssh-in-ingresso/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH: The authenticity of host &#8216;xxxxx (xxxxx)&#8217; can&#8217;t be established.</title>
		<link>https://blog.smsoft.it/2023/02/21/the-authenticity-of-host-xxxxx-xxxxx-cant-be-established/</link>
					<comments>https://blog.smsoft.it/2023/02/21/the-authenticity-of-host-xxxxx-xxxxx-cant-be-established/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 21 Feb 2023 09:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[authenticity of host]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5839</guid>

					<description><![CDATA[Se vi è capitato di clonare un VPS Linux e poi avete provato a collegarvi via ssh, avrete notato un&#8217;informativa tipo: Questo capita se avete l&#8217;opzione StrictHostKeyChecking attiva nel client SSH. Per ovviare, si può rigenerare la chiave server come segue: rm /etc/ssh/ssh_host_* dpkg-reconfigure openssh-server enjoy!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se vi è capitato di clonare un VPS Linux e poi avete provato a collegarvi via <strong>ssh</strong>, avrete notato un&#8217;informativa tipo:</p>



<pre class="wp-block-code"><code>The authenticity of host 'xxxx (xxxxxxx)' can't be established.
ED25519 key fingerprint is SHA256:aaaaaaaaaaaaaaaaaaaaaa.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:611: xx.xx.xx.xx
...
...
(11 additional names omitted)
Are you sure you want to continue connecting (yes/no/&#91;fingerprint])? yes</code></pre>



<p class="wp-block-paragraph">Questo capita se avete l&#8217;opzione <strong>StrictHostKeyChecking</strong> attiva nel client SSH.</p>



<p class="wp-block-paragraph">Per ovviare, si può rigenerare la chiave server come segue:</p>



<pre class="wp-block-preformatted"><code>rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2023/02/21/the-authenticity-of-host-xxxxx-xxxxx-cant-be-established/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH: accedere forzando la richiesta della password</title>
		<link>https://blog.smsoft.it/2023/01/31/ssh-accedere-forzando-la-richiesta-della-password/</link>
					<comments>https://blog.smsoft.it/2023/01/31/ssh-accedere-forzando-la-richiesta-della-password/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 31 Jan 2023 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[PubkeyAuthentication]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5789</guid>

					<description><![CDATA[Ormai si utilizza quasi esclusivamente l&#8217;accesso ai server SSH tramite chiave; impostando correttamente il proprio .ssh/config si possono creare delle impostazioni specifiche per la connessione a diversi server SSH. Io, ad esempio, ho preconfigurato l&#8217;uso di un paio di chiavi che il client prova in automatico per accedere, ma se ci troviamo in questo caso ... <a title="SSH: accedere forzando la richiesta della password" class="read-more" href="https://blog.smsoft.it/2023/01/31/ssh-accedere-forzando-la-richiesta-della-password/" aria-label="Per saperne di più su SSH: accedere forzando la richiesta della password">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ormai si utilizza quasi esclusivamente l&#8217;accesso ai server SSH tramite chiave; impostando correttamente il proprio .ssh/config si possono creare delle impostazioni specifiche per la connessione a diversi server SSH. Io, ad esempio, ho preconfigurato l&#8217;uso di un paio di chiavi che il client prova in automatico per accedere, ma se ci troviamo in questo caso e volessimo forzare la richiesta della password perché il server non ha la chiave pubblica caricata?</p>



<p class="wp-block-paragraph">In questo caso dovremo aggiungere l&#8217;opzione PubkeyAuthentication come segue:</p>



<pre class="wp-block-code"><code>ssh -o PubkeyAuthentication=no IP_DEL_SERVER</code></pre>



<p class="wp-block-paragraph">In questo modo viene ignorato l&#8217;accesso con chiave e viene richiesta la password.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2023/01/31/ssh-accedere-forzando-la-richiesta-della-password/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte</title>
		<link>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/</link>
					<comments>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 06 Jul 2021 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[ProxyCommand]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunnel]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4988</guid>

					<description><![CDATA[Ci sono diversi casi in cui è necessario accedere ad un server SSH dietro una NAT dove il gateway può essere raggiunto via SSH che a sua volta può raggiungere il server SSH interno. Normalmente avremmo bisogno di collegarci al gateway e poi da gateway avviare una nuova connessione SSH all&#8217;interno. Ci sono due soluzioni ... <a title="Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte" class="read-more" href="https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/" aria-label="Per saperne di più su Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ci sono diversi casi in cui è necessario accedere ad un server SSH dietro una NAT dove il gateway può essere raggiunto via SSH che a sua volta può raggiungere il server SSH interno. Normalmente avremmo bisogno di collegarci al gateway e poi da gateway avviare una nuova connessione SSH all&#8217;interno.</p>



<p class="wp-block-paragraph">Ci sono due soluzioni che consentono di velocizzare questa procedura, una l&#8217;abbiamo vista tempo fa ed è il port forwarding, dove il server dietro la NAT effettua una connessione SSH al gateway e gli chiede di mettersi in ascolto su una certa porta ed inoltrare tutto quello che riceve su questa porta al server che ha avviato il port forwarding.</p>



<p class="wp-block-paragraph">Un&#8217;altra soluzione, qualora non sia possibile aprire porte sul gateway o non si possa raggiungere prima il server dietro la NAT, è fare una doppia connessione SSH (prima al gateway e poi dal gateway verso il server interno) e questa cosa&#8230; <strong>può essere automatizzata</strong>.</p>



<p class="wp-block-paragraph">In base alla versione di OpenSSH installata, la configurazione è leggermente diversa. Ricordo che la configurazione ssh va fatta nel file <strong>~/.ssh/config</strong> in cui andremo a creare una sezione per la connessione che ci interessa. Ipotizziamo che il gateway abbia IP <strong>10.10.10.10</strong> (il nostro proxyserver) ed il server dietro NAT abbia IP <strong>192.168.1.20 </strong>(il nostro server finale), la configurazione nel nostro client sarà:</p>



<h2 class="wp-block-heading">OpenSSH 7.3 o superiore:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-preformatted">Host dietro_nat
  Hostname 192.168.1.20
  ProxyJump 10.10.10.10</pre>



<p class="wp-block-paragraph">e ci colleghiamo con:</p>



<pre class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-preformatted">ssh 192.168.1.20 -o 'ProxyJump 10.10.10.10' </pre>



<p class="wp-block-paragraph">o, in alternativa:</p>



<pre class="wp-block-preformatted">ssh -J user@10.10.10.10 user@192.168.1.20</pre>



<h2 class="wp-block-heading">OpenSSH superiore alla 5.4:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-code"><code>Host dietro_nat
  Hostname 192.168.1.20
  ProxyCommand ssh 10.10.10.10 -W %h:%p</code></pre>



<p class="wp-block-paragraph">e ci colleghiamo sempre con:</p>



<pre id="block-2f3a5aec-bae3-47fa-9942-9e4e91450ebd" class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-code"><code>ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 -W %h:%p'</code></pre>



<h2 class="wp-block-heading">OpenSSH inferiore alla 5.4:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-code"><code>Host dietro_nat
  Hostname 192.168.1.29
  ProxyCommand ssh 10.10.10.10 nc %h %p 2&gt; /dev/null</code></pre>



<p class="wp-block-paragraph">e ci colleghiamo con:</p>



<pre id="block-c932fe8c-6af9-41a7-85b1-2fc3e5ce6904" class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-code"><code>ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 nc %h %p 2&gt; /dev/null'</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VIM: aprire un file remoto via SSH</title>
		<link>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/</link>
					<comments>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 23 Jun 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4682</guid>

					<description><![CDATA[In qualche caso potrebbe essere comodo aprire (per modifiche, nuova creazione, etc) un file su un server remoto, senza dover prima fare la connessione SSH. Ipotizziamo di voler aprire il file /etc/apache2/apache2.conf sul server 10.10.10.10, il comando da eseguire sarà: vi scp://10.10.10.10//etc/apache2/apache2.conf Colgo l&#8217;occasione per ricordarvi che per eseguire un comando remoto, es riavviare apache, ... <a title="VIM: aprire un file remoto via SSH" class="read-more" href="https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/" aria-label="Per saperne di più su VIM: aprire un file remoto via SSH">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In qualche caso potrebbe essere comodo aprire (per modifiche, nuova creazione, etc) un file su un server remoto, senza dover prima fare la connessione SSH. Ipotizziamo di voler aprire il file <strong>/etc/apache2/apache2.conf</strong> sul server <strong>10.10.10.10</strong>, il comando da eseguire sarà:</p>



<pre class="wp-block-preformatted">vi scp://10.10.10.10//etc/apache2/apache2.conf</pre>



<p class="wp-block-paragraph">Colgo l&#8217;occasione per ricordarvi che per eseguire un comando remoto, es riavviare apache, si può usare:</p>



<pre class="wp-block-preformatted">ssh 10.10.10.10 'service apache2 restart'</pre>



<p class="wp-block-paragraph">Nei due esempi precedenti, non ho passato l&#8217;user/password di connessione, perché abitualmente <a href="https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/">uso un certificato per farlo</a>.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH: limitare la connessione solo per una rete o IP</title>
		<link>https://blog.smsoft.it/2019/03/12/ssh-limitare-la-connessione-solo-per-una-rete-o-ip/</link>
					<comments>https://blog.smsoft.it/2019/03/12/ssh-limitare-la-connessione-solo-per-una-rete-o-ip/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 12 Mar 2019 08:30:20 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[address]]></category>
		<category><![CDATA[MAtch]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4297</guid>

					<description><![CDATA[In alcune casi può essere utile limitare la connessione al server SSH per una sola rete IP o un IP in particolare. Per far questo, possiamo usare la direttiva Match Address. Il file da modificare per le configurazioni è /etc/ssh/sshd_config; Innanzitutto disabilitiamo l&#8217;accesso con le direttive: PasswordAuthentication no PubkeyAuthentication no Successivamente abilitiamo l&#8217;accesso solo per ... <a title="SSH: limitare la connessione solo per una rete o IP" class="read-more" href="https://blog.smsoft.it/2019/03/12/ssh-limitare-la-connessione-solo-per-una-rete-o-ip/" aria-label="Per saperne di più su SSH: limitare la connessione solo per una rete o IP">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In alcune casi può essere utile limitare la connessione al server SSH per una sola rete IP o un IP in particolare.</p>



<p class="wp-block-paragraph">Per far questo, possiamo usare la direttiva <strong>Match Address</strong>. Il file da modificare per le configurazioni è <strong>/etc/ssh/sshd_config</strong>; Innanzitutto disabilitiamo l&#8217;accesso con le direttive:</p>



<pre class="wp-block-preformatted">PasswordAuthentication no
PubkeyAuthentication no</pre>



<p class="wp-block-paragraph">Successivamente abilitiamo l&#8217;accesso solo per un IP (es <strong>xxx.xxx.xxx.xxx</strong>):</p>



<pre class="wp-block-preformatted">Match address xxx.xxx.xxx.xxx/32
    PasswordAuthentication yes</pre>



<p class="wp-block-paragraph">Prima di riavviare, verifichiamo di non aver commesso errori nel file di configurazione con:</p>



<pre class="wp-block-preformatted">sshd -t</pre>



<p class="wp-block-paragraph">Bene, riavviamo il servizio <strong>ssh</strong>:</p>



<pre class="wp-block-preformatted">service ssh restart</pre>



<p class="wp-block-paragraph">Se abbiamo più interfacce e vogliamo lasciare il servizio ssh in ascolto solo su una di esse, possiamo utilizzare la direttiva <strong>ListenAddress</strong> a cui va indicato l&#8217;IP dell&#8217;interfaccia.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2019/03/12/ssh-limitare-la-connessione-solo-per-una-rete-o-ip/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH: Aggiornare la propria chiave RSA</title>
		<link>https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/</link>
					<comments>https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/#comments</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 19 Sep 2017 08:30:02 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[ed25519]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssh-add]]></category>
		<category><![CDATA[ssh-keygen]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=3810</guid>

					<description><![CDATA[Chi ha generato anni fa una chiave SSH di tipo RSA, magari a 1024 o 2048bit, (o addirittura DSA) per l&#8217;autenticazione su server SSH è ormai obbligato ad aggiornare la propria chiave con una più robusta, magari a 4096bit o meglio passare al formato Ed25519. Il nuovo formato Ed25519 è supportato da OpenSSH 6.5 (Ubuntu ... <a title="SSH: Aggiornare la propria chiave RSA" class="read-more" href="https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/" aria-label="Per saperne di più su SSH: Aggiornare la propria chiave RSA">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Chi ha generato anni fa una chiave SSH di tipo RSA, magari a 1024 o 2048bit, (o addirittura DSA) per l&#8217;autenticazione su server SSH è ormai <strong>obbligato</strong> ad aggiornare la propria chiave con una più robusta, magari a 4096bit o meglio passare al formato <a href="https://en.wikipedia.org/wiki/EdDSA" target="_blank" rel="noopener noreferrer">Ed25519</a>.</p>



<p class="wp-block-paragraph">Il nuovo formato Ed25519 è supportato da OpenSSH 6.5 (Ubuntu 14.04+, Debian 8+, CentOS/RedHat 7+)</p>



<p class="wp-block-paragraph">Il problema che sorge è nel fatto che sicuramente la chiave pubblica sarà ormai su diversi server e pertanto non si può semplicemente cancellare la vecchia, ma bisogna programmare un periodo di transizione durante il quale si farà l&#8217;autenticazione con la precedente chiave e si aggiungerà anche la nuova. Questo però può rendere problematica la connessione, perché bisognerebbe specificare a mano la chiave da usare volta per volta in base al server remoto, oppure impostare la configurazione nel file .ssh/config. Ci viene in aiuto il comando ssh-add per gestire l&#8217;autenticazione in automatico con diverse chiavi.</p>



<p class="wp-block-paragraph">Ma vediamo la procedura da fare per:<br>1 &#8211; fare una copia della precedente chiave RSA<br>2 &#8211; generare una nuova chiave RSA a 4096<br>3 &#8211; generare una nuova chiave Ed25519<br>4 &#8211; configurare il sistema per provare in automatico le tre per l&#8217;autenticazione</p>



<pre class="wp-block-code"><code><code>mv ~/.ssh/id_rsa ~/.ssh/id_rsa_legacy<br>mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa_legacy.pub</code></code></pre>



<pre class="wp-block-code"><code>ssh-keygen -t rsa -b 4096 -o -a 100 -C "indirizzo@email"</code></pre>



<pre class="wp-block-code"><code>ssh-keygen -o -a 100 -t ed25519 -C "indirizzo@email"</code></pre>



<pre class="wp-block-code"><code>ssh-add ~/.ssh/id_rsa ~/.ssh/id_rsa_legacy ~/.ssh/id_ed25519</code></pre>



<p class="wp-block-paragraph">Bene, ora effettuando la connessione SSH ad un server remoto, verrà fatta in automatico l&#8217;autenticazione in base ad una delle chiavi trovate nell&#8217;elenco passato ad <strong>ssh-add</strong>.</p>



<p class="wp-block-paragraph">Per aggiornare la chiave ssh sul <strong>server</strong>, potremo effettuare dal client, per ogni server:</p>



<pre class="wp-block-code"><code>ssh-copy-id -i ~/.ssh/id_ed25519 user@server</code></pre>



<p class="wp-block-paragraph">ed infine dovremo procedere col cancellare la vecchia entry, dopo aver verificato che la nuova funzioni correttamente, nel file <strong>~/.ssh/authorized_keys</strong> di ogni server.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Linux: copiare una cartella in un altro PC (rsync over ssh)</title>
		<link>https://blog.smsoft.it/2017/05/16/linux-copiare-cartella-un-altro-pc-rsync-over-ssh/</link>
					<comments>https://blog.smsoft.it/2017/05/16/linux-copiare-cartella-un-altro-pc-rsync-over-ssh/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 16 May 2017 08:30:03 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=3709</guid>

					<description><![CDATA[Esistono molti prodotti, anche commerciali, che consentono di copiare il contenuto di una cartella in un altro PC. Questo può essere utile per avere un backup remoto, ad esempio. Rsync è un tool molto semplice che consente la copia di files tra due cartelle in modo che il contenuto sia sincronizzato. Le due cartelle devono ... <a title="Linux: copiare una cartella in un altro PC (rsync over ssh)" class="read-more" href="https://blog.smsoft.it/2017/05/16/linux-copiare-cartella-un-altro-pc-rsync-over-ssh/" aria-label="Per saperne di più su Linux: copiare una cartella in un altro PC (rsync over ssh)">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Esistono molti prodotti, anche commerciali, che consentono di copiare il contenuto di una cartella in un altro PC. Questo può essere utile per avere un backup remoto, ad esempio.</p>
<p><strong>Rsync</strong> è un tool molto semplice che consente la copia di files tra due cartelle in modo che il contenuto sia sincronizzato. Le due cartelle devono però essere locali (magari anche NFS) ma comunque collegate allo stesso PC.</p>
<p>E&#8217; possibile con un&#8217;opzione effettuare l&#8217;rsync tra due PC, a patto che si possa accedere al PC remoto tramite ssh e che rsync sia installato su entrambi.</p>
<p>Vediamo la procedura.<br />
&#8211; creiamo la chiave ssh sul server nel caso ancora non sia stata creata:</p>
<p><code>ssh-keygen -o -a 100 -t ed25519 -C "indirizzo@email"</code></p>
<p>oppure, per sistemi più vecchi:<br />
<code>ssh-keygen -q -P ""</code></p>
<p>&#8211; si copia sul server remoto:</p>
<p><code>ssh-copy-id -i ~/.ssh/id_ed25519.pub utente@server_remoto</code></p>
<p>oppure, per sistemi più vecchi:<br />
<code>ssh-copy-id -i ~/.ssh/id_rsa.pub utente@server_remoto</code></p>
<p>&#8211; fatto questo, si possono sincronizzare i files (prende i files da <strong>/var/www</strong> e copia in <strong>utente@server_remoto:/var/www</strong>):<br />
<code>rsync -avz -e ssh /var/www utente@server_remoto:/var/</code></p>
<p><strong>Nota</strong>: bisogna prestare attenzione al nome della cartella di origine e destinazione, perché quella di origine viene aggiunta a quella di destinazione, ovvero nel caso precedente come destinazione va indicato solo /var.</p>
<p>Per <strong>fare solo un check</strong> dei file coinvolti da rsync, senza copiare effettivamente, aggiungere l&#8217;opzione <strong>-n</strong> (ovvero &#8211;dry-run).</p>
<p>Per copiare solo i <strong>file non esistenti</strong> nel server remoto (senza sovrascrivere quelli esistenti anche se diversi), usare l&#8217;opzione <strong>&#8211;ignore-existing</strong>.</p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2017/05/16/linux-copiare-cartella-un-altro-pc-rsync-over-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry: come raggiungerlo se non ha un IP pubblico statico</title>
		<link>https://blog.smsoft.it/2016/10/25/raspberry-raggiungerlo-non-un-ip-pubblico-statico/</link>
					<comments>https://blog.smsoft.it/2016/10/25/raspberry-raggiungerlo-non-un-ip-pubblico-statico/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 25 Oct 2016 08:30:56 +0000</pubDate>
				<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[autossh]]></category>
		<category><![CDATA[forward]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[remote port forwarding]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunnel]]></category>
		<guid isPermaLink="false">http://blog.smsoft.it/?p=3545</guid>

					<description><![CDATA[Mi si è presentata una situazione in cui il raspberry (ma potrebbe essere benissimo una linux box GNU/Debian) era in una rete locale non raggiungibile direttamente dall&#8217;esterno e non potendo attivare un port forwarding sul router, non c&#8217;era molto da fare per poterlo rendere raggiungibile dall&#8217;esterno. In questo caso, l&#8217;uso di un tunnel SSH è ... <a title="Raspberry: come raggiungerlo se non ha un IP pubblico statico" class="read-more" href="https://blog.smsoft.it/2016/10/25/raspberry-raggiungerlo-non-un-ip-pubblico-statico/" aria-label="Per saperne di più su Raspberry: come raggiungerlo se non ha un IP pubblico statico">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Mi si è presentata una situazione in cui il <strong>raspberry</strong> (ma potrebbe essere benissimo una linux box GNU/Debian) era in una rete locale non raggiungibile direttamente dall&#8217;esterno e non potendo attivare un port forwarding sul router, non c&#8217;era molto da fare per poterlo rendere raggiungibile dall&#8217;esterno.</p>
<p>In questo caso, l&#8217;uso di un <strong>tunnel SSH</strong> è l&#8217;ideale, sempre che si disponga di un server linux con IP pubblico da usare.</p>
<p>In pratica la situazione è questa:</p>
<p>raspberry 192.168.1.10<br>router/AP (doppio IP) 192.168.1.1/192.168.10.20<br>router/gateway pubblico 192.168.10.1/61.24.35.76</p>
<p>Pertanto, il raspberry per &#8220;navigare&#8221; passa attraverso il router/AP che a sua volta passa attraverso il router/gateway pubblico.</p>
<p>Raggiungere il raspberry da internet con questa configurazione non è possibile, a meno che non si possa configurare il router/gateway e poi il router/AP per inoltrare i pacchetti diretti verso una determinata porta del router/gateway verso il raspberry.</p>
<p>Abbiamo a disposizione un server linux con IP pubblico, ad esempio il 60.60.60.60.</p>
<p>Cosa possiamo fare?<br>Dal raspberry possiamo avviare un tunnel ssh verso il server linux e &#8220;dirgli&#8221; che se dovessero arrivargli pacchetti su una determinata porta, li deve girare verso il raspberry, tramite il tunnel ssh.</p>
<p>Questa cosa può essere fatta nativamente da SSH attivando un remote port forwarding.</p>
<p>Innanzitutto bisogna <a href="https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/" target="_blank" rel="noopener noreferrer">creare una chiave pubblica SSH sul raspberry</a> e caricarla sul server linux. Non mi dilungo su questa parte.</p>
<p>Sul server linux bisogna inserire nel file <strong>/etc/ssh/sshd_config</strong> la seguente direttiva:<br><code lang="bash">GatewayPorts yes</code></p>
<p>Successivamente, sul raspberry, dovremo lanciare il seguente comando:</p>
<p><code lang="bash">ssh -R 2203:localhost:22 utente@60.60.60.60</code></p>
<p>dove 2203 e la porta da aprire sul server linux, 22 è la porta del raspberry che vogliamo risponda, utente@60.60.60.60 è l&#8217;utente e l&#8217;IP/FQDN del server linux</p>
<p>Cosi&#8217; facendo, sarà possible collegarsi alla porta 2203 del server linux 60.60.60.60 tramite il client ssh e vedremo rispondere il servizio ssh del raspberry.</p>
<p>Ovviamente possiamo girare non solo la porta 22, ma anche altre porte, ad esempio la 80 se vogliamo rendere pubblico un servizio web su internet.</p>
<p>Riavviando il raspberry, purtroppo, il tunnel verrà interrotto. Per mantenerlo sempre attivo ed avviarlo in automatico in caso di reboot del raspberry, consiglio l&#8217;installazione del pacchetto <strong>autossh</strong>:<br><code lang="bash">apt-get install autossh</code></p>
<p>e poi l&#8217;inserimento della seguente riga come penultima (prima di exit 0) del file <strong>/etc/rc.local</strong>:<br><code lang="bash">autossh -2 -fN -M 20000 -R 2203:localhost:22 utente@60.60.60.60</code></p>


<p class="wp-block-paragraph">In alternativa è possibile creare un file Systemd service per autossh. Creare il file <strong>/etc/systemd/system/autossh-tunnel.service</strong> con dentro:</p>



<pre class="wp-block-preformatted">[Unit]
Description=AutoSSH tunnel service
After=network.target

[Service]
Environment="AUTOSSH_GATETIME=0"
#-p [PORT]
#-l [user]
#-M 0 --&gt; no monitoring
#-N Just open the connection and do nothing (not interactive)
# LOCALPORT:IP_ON_EXAMPLE_COM:PORT_ON_EXAMPLE_COM
ExecStart=/usr/bin/autossh -2 -fN -M 20000 -R 2203:localhost:22 utente@60.60.60.60
ExecStop=/bin/kill -9 autossh

[Install]
WantedBy=multi-user.target</pre>



<p class="wp-block-paragraph">Poi abitiliamo:</p>



<pre class="wp-block-preformatted">systemctl daemon-reload
systemctl enable autossh-tunnel.service
systemctl start autossh-tunnel.service</pre>



<p class="wp-block-paragraph">Per verificare:</p>



<pre class="wp-block-preformatted">journalctl | grep autossh</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2016/10/25/raspberry-raggiungerlo-non-un-ip-pubblico-statico/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Importare la chiave SSH (ssh key) per un utente mikrotik</title>
		<link>https://blog.smsoft.it/2016/03/15/importare-la-chiave-ssh-ssh-key-per-un-utente-mikrotik/</link>
					<comments>https://blog.smsoft.it/2016/03/15/importare-la-chiave-ssh-ssh-key-per-un-utente-mikrotik/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 15 Mar 2016 09:30:16 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://blog.smsoft.it/?p=3376</guid>

					<description><![CDATA[Per importare la chiave ssh su un utente mikrotik, in modo da poter fare il login ssh senza dover digitare ogni volta la password, bisogna ricordarsi di dover usare una chiave in formato DSA. La chiave può essere generata su sistemi Linux con: [crayon-6a7207775abbd866547717/] Avendo generato già la chiave in formato DSA, basterà copiarla via ... <a title="Importare la chiave SSH (ssh key) per un utente mikrotik" class="read-more" href="https://blog.smsoft.it/2016/03/15/importare-la-chiave-ssh-ssh-key-per-un-utente-mikrotik/" aria-label="Per saperne di più su Importare la chiave SSH (ssh key) per un utente mikrotik">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>Per importare la chiave ssh su un utente mikrotik, in modo da poter fare il login ssh senza dover digitare ogni volta la password, bisogna ricordarsi di dover usare una chiave in formato DSA.</p>
<p>La chiave può essere generata su sistemi Linux con:</p><pre class="urvanov-syntax-highlighter-plain-tag">ssh-keygen -t dsa -b 4096 -C "email@example.com"</pre><p></p>
<p>Avendo generato già la chiave in formato DSA, basterà copiarla via FTP sul mikrotik; i dati di connessione FTP sono quelli di un utente mikrotik attivo.</p>
<p>Dopo aver copiato la chiave id_dsa.pub via FTP, si può accedere alla scheda &#8220;System&#8221;->&#8221;Users&#8221; e poi dal tab &#8220;Import SSH Key&#8221; basterà digitare il nome utente e poi scegliere, da menù a discesa, la chiave precedentemente copiata via FTP.</p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2016/03/15/importare-la-chiave-ssh-ssh-key-per-un-utente-mikrotik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
