{"id":1131,"date":"2014-03-21T14:29:22","date_gmt":"2014-03-21T13:29:22","guid":{"rendered":"http:\/\/clark.tipistrani.it\/?p=1131"},"modified":"2025-10-09T15:07:41","modified_gmt":"2025-10-09T13:07:41","slug":"ssh-password-sicuro","status":"publish","type":"post","link":"http:\/\/clark.tipistrani.it\/?p=1131","title":{"rendered":"SSH senza password ma sicuro"},"content":{"rendered":"<p><a href=\"http:\/\/it.wikipedia.org\/wiki\/Secure_shell\">SSH<\/a> o meglio <a href=\"http:\/\/it.wikipedia.org\/wiki\/OpenSSH\">OpenSSH<\/a> \u00e8 &#8220;il modo&#8221; di collegarsi a macchine remote.<br \/>\nChiunque abbia a che fare con macchine perimetrali, cio\u00e8 con quelle macchine che sono l&#8217;interfaccia tra una LAN e il mondo sa che nei log di sistema trovare dei tentativi di connessione alla porta 22 (la porta di default del demone) \u00e8 cosa giornaliera.<br \/>\nFermo restando il portare il servizio su una porta diversa &gt; di 1024 e di usare password ben strutturate alfanumericamente e con segni di interpunzione, un ulteriore passo per rendere difficile la vita alla gente che nella vita non ha di meglio da fare che tentare di sfondare macchine \u00e8 quello di usare l&#8217;autenticazione tramite chiavi.<br \/>\nIn buona sostanza si tratta di demandare l&#8217;autenticazione direttamente alle chiavi senza passare dalla password.<br \/>\nIl tool che ci permette di fare questa operazione \u00e8 ssh-keygen<\/p>\n<p>clark@pc0:~\/.ssh$ ssh-keygen -b 4096<br \/>\nGenerating public\/private rsa key pair.<br \/>\nEnter file in which to save the key (\/home\/clark\/.ssh\/id_rsa):<br \/>\nEnter passphrase (empty for no passphrase):<br \/>\nEnter same passphrase again:<br \/>\nYour identification has been saved in \/home\/clark\/.ssh\/id_rsa.<br \/>\nYour public key has been saved in \/home\/clark\/.ssh\/id_rsa.pub.<br \/>\nThe key fingerprint is:<br \/>\nd7:69:38:fb:8e:c4:d5:40:41:da:85:07:f7:41:94:83 clark@pc0<br \/>\nThe key&#8217;s randomart image is:<br \/>\n+&#8211;[ RSA 4096]&#8212;-+<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .=+*+.|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 +.E.+.|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 . o.\u00a0 o|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o +\u00a0\u00a0 |<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 S + = .\u00a0 |<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o =\u00a0\u00a0\u00a0\u00a0 |<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 +\u00a0\u00a0\u00a0\u00a0\u00a0 |<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 . o\u00a0\u00a0\u00a0\u00a0 |<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ..o\u00a0\u00a0\u00a0 |<br \/>\n+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br \/>\nVediamo un minimo di dettaglio della cosa, l&#8217;opzione -b 4096 raddoppia la lunghezza della chiave (normalmente 2048) di per se sarebbe un di pi\u00f9 ma serve a rendere la vita difficile a eventuali malintezionati e mi pagano per questo&#8230;<br \/>\nEnter passphrase (empty for no passphrase):&#8230;<br \/>\nqui ci sono i pro e i contro, pro se non la metti puoi usare questo sistema mediante script per automatizzare un gran numero di operazioni, contro se ti fregano la chiave possono accedere a tutte le tue macchine, se perdi o non puoi accedere per qualsiasi motivo alle chiavi non puoi neanche accedere alle altre macchine, inutile dire che minimo 3 copie di queste chiavi messe in tre posti differenti sono il &#8220;minimo sindacale&#8221; accettato.<br \/>\nSi tratta di copiare adesso le chiavi sull&#8217;host destinatario, cosa che possiamo fare con 2 metodi o tramite il classico scp o via ssh-copy-id<\/p>\n<p>scp -P 3122 ~\/.ssh\/id_rsa.pub &lt;clark&gt;@&lt;ip del server\/nome_dns_&gt;:~\/.ssh\/authorized_keys<\/p>\n<p>oppure<\/p>\n<p>ssh-copy-id -i ~\/.ssh\/id_rsa.pub utente@server -p 3122<\/p>\n<p>ADDENDUM<\/p>\n<p>dopo un tot di anni l gramamtica \u00e8 (neanche da dirlo) cambiata quindi diventa:<\/p>\n<p>ssh-copy-id -i ~\/.ssh\/id_rsa.pub -p 3122 utente@server<br \/>\nse la porta \u00e8 la 22 canonica basta un<br \/>\nssh-copy-id -i ~\/.ssh\/id_rsa.pub utente@server<\/p>\n<p>Sul server il file sshd_config dovr\u00e0 avere questi parametri<\/p>\n<pre>HostbasedAuthentication yes\r\nRSAAuthentication yes\r\nPubkeyAuthentication yes\r\n<\/pre>\n<p>A questo punto se tutto \u00e8 andato liscio baster\u00e0 fare un ssh clark@server e si entrer\u00e0 direttamente senza dover mettere password.<br \/>\nQui si possono inoltre scegliere 2 strade differenti, vale a dire lasciare abilitata la login tramite password o disabilitarla e permettere la login solo tramite chiavi, se si sceglie la seconda si tratta di modificare \/etc\/ssh\/sshd_config combiando in questo modo queste 3 voci:<\/p>\n<p>ChallengeResponseAuthentication no<br \/>\nPasswordAuthentication no<br \/>\nUsePAM no<\/p>\n<p>&nbsp;<\/p>\n<p>quindi restartare il demone \/etc\/init.d\/ssh restart e a questo punto non sar\u00e0 piu&#8217; possibile entrare se non si \u00e8 nel file\u00a0 authorized_keys della macchina.<\/p>\n<p>Addendum<\/p>\n<p>dopo diversi anni un po di cose sono cambiate quindi la parte relativa all&#8217;sshd_config su Devuan chimaera diventa:<\/p>\n<p>Port 3122<br \/>\nPermitRootLogin prohibit-password<br \/>\nPasswordAuthentication no<br \/>\nChallengeResponseAuthentication no<br \/>\nUsePam no<br \/>\nX11Forwarding yes<\/p>\n<p>Lasciando commentato tutto il resto<\/p>\n<div id=\"link64_adl_tabid\" style=\"display: none;\" data-url=\"http:\/\/clark.tipistrani.it\/wp-admin\/post.php?post=1131&amp;action=edit\">132<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SSH o meglio OpenSSH \u00e8 &#8220;il modo&#8221; di collegarsi a macchine remote. Chiunque abbia a che fare con macchine perimetrali, cio\u00e8 con quelle macchine che sono l&#8217;interfaccia tra una LAN e il mondo sa che nei log di sistema trovare dei tentativi di connessione alla porta 22 (la porta di default del demone) \u00e8 cosa [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6],"tags":[69,68],"class_list":["post-1131","post","type-post","status-publish","format-standard","hentry","category-linux","category-work","tag-no-password","tag-ssh"],"_links":{"self":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1131"}],"version-history":[{"count":11,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1131\/revisions"}],"predecessor-version":[{"id":2679,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1131\/revisions\/2679"}],"wp:attachment":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1131"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}