Connect with us

Linux

Come installare il server OpenSSH su Alpine Linux (incluso Docker)


Til suo breve tutorial spiega come installare e configurare server e client OpenSSH (SSHD) sul sistema Alpine Linux. Inoltre, imparerai come creare un container Docker Linux che esegue un server sshd basato anche sull’immagine Alpine Linux.

Dettagli tutorial
Livello di difficoltà Facile
Privilegi di root
Requisiti Linux alpino
Est. momento della lettura 4 minuti

Installazione del server OpenSSH su Alpine Linux

La procedura per configurare un server ssh è la seguente:

  1. Cerca il pacchetto ssh, esegui:
    apk search openssh
    Configurare un server ssh su Alpine Linux cercandolo
  2. Installa il server e il client OpenSSH usando il comando apk:
    apk aggiungi openssh
  3. Abilita il servizio sshd all’avvio:
    rc-update aggiungi sshd
    Uscite:
     * service sshd added to runlevel default
  4. Avvia immediatamente il servizio SSHD su Alpine Linux utilizzando il comando service:
    servizio sshd start
    Uscite:
    
     * Caching service dependencies ...          [ ok ]
    ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 
     * Starting sshd ...                         [ ok ]
    
  5. Modifica il /etc/ssh/sshd_config a scopo di personalizzazione.
  6. Per impostazione predefinita, sshd su Alpine Linux utilizzerà la porta TCP 22. Quindi è necessario configurare il firewall Awall su Alpine Linux per aprire la porta TCP n. 22.
  7. Gli utenti possono ora accedere utilizzando le proprie password e chiavi ssh. Per esempio:
    ssh vivek@alpine-server-ip-qui

Installazione di OpenSSH sul contenitore Alpine Linux Docker

Devi solo aggiungere quanto segue al tuo Dockerfile:
RUN apk add --no-cache openssh
Ma ecco come configurare un server ssh all’interno di un container docker utilizzando Alpine Linux. Crea un nuovo Dockerfile:

FROM alpine:latest
LABEL maintainer="Vivek Gite webmater@cyberciti.biz"
RUN apk add --update --no-cache openssh 
RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
RUN adduser -h /home/vivek -s /bin/sh -D vivek
RUN echo -n 'vivek:some_password_here' | chpasswd
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22
COPY entrypoint.sh /

Crea un nuovo script di shell chiamato entrypoint.sh come segue:

#!/bin/sh
ssh-keygen -A
exec /usr/sbin/sshd -D -e "$@"

Imposta i permessi eseguibili usando il comando chmod:
chmod +x -v entrypoint.sh
Quindi costruiscilo come segue:
docker build -t alpine-sshd .

Sending build context to Docker daemon  30.21kB
Step 1/9 : FROM alpine:latest
latest: Pulling from library/alpine
a0d0a0d46f8b: Pull complete 
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:latest
 ---> 14119a10abf4
Step 2/9 : LABEL maintainer="Vivek Gite webmater@cyberciti.biz"
 ---> Running in 3bd5df80a039
Removing intermediate container 3bd5df80a039
 ---> ad5cae21b2b8
Step 3/9 : RUN apk add --update --no-cache openssh
 ---> Running in 2af9aebbe183
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/10) Installing openssh-keygen (8.6_p1-r3)
(2/10) Installing ncurses-terminfo-base (6.2_p20210612-r0)
(3/10) Installing ncurses-libs (6.2_p20210612-r0)
(4/10) Installing libedit (20210216.3.1-r0)
(5/10) Installing openssh-client-common (8.6_p1-r3)
(6/10) Installing openssh-client-default (8.6_p1-r3)
(7/10) Installing openssh-sftp-server (8.6_p1-r3)
(8/10) Installing openssh-server-common (8.6_p1-r3)
(9/10) Installing openssh-server (8.6_p1-r3)
(10/10) Installing openssh (8.6_p1-r3)
Executing busybox-1.33.1-r3.trigger
OK: 12 MiB in 24 packages
Removing intermediate container 2af9aebbe183
 ---> 810ed83e5a93
Step 4/9 : RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
 ---> Running in c5288a3af1a0
Removing intermediate container c5288a3af1a0
 ---> e2f05f1da7cd
Step 5/9 : RUN adduser -h /home/vivek -s /bin/sh -D vivek
 ---> Running in 8ae29c917926
Removing intermediate container 8ae29c917926
 ---> e258460dfa67
Step 6/9 : RUN echo -n 'vivek:vivek' | chpasswd
 ---> Running in 1df5fef24dcf
chpasswd: password for 'vivek' changed
Removing intermediate container 1df5fef24dcf
 ---> 1c903eaa551f
Step 7/9 : ENTRYPOINT ["/entrypoint.sh"]
 ---> Running in 86af67a76db7
Removing intermediate container 86af67a76db7
 ---> 185a32d0bc09
Step 8/9 : EXPOSE 22
 ---> Running in 203f6f8bcaa2
Removing intermediate container 203f6f8bcaa2
 ---> 9f3f5a20d44c
Step 9/9 : COPY entrypoint.sh /
 ---> c1a0fe4e6375
Successfully built c1a0fe4e6375
Successfully tagged alpine-sshd:latest

Eseguirlo:
docker run --name sshd_app -d -p 22:22 alpine-sshd:latest

03a3661d04d6aa266690c3c44ab3aaa23ea2258ebe18d5efd07f8553710c9da2

Verificalo:
docker ps

Guide solo per i sostenitori di Patreon ????

  • Nessuna pubblicità e tracciamento
  • Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
  • Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:

Aderire Patreon ?

CONTAINER ID   IMAGE                COMMAND            CREATED          STATUS          PORTS                               NAMES
03a3661d04d6   alpine-sshd:latest   "/entrypoint.sh"   16 seconds ago   Up 15 seconds   0.0.0.0:22->22/tcp, :::22->22/tcp   sshd_app

Ora puoi ssh in esso:
ssh vivek@docker-sever-ip-here
Si prega di notare che quanto sopra è un contenitore principale a scopo dimostrativo e non ho impostato un volume per i dati di persistenza. Vedi i volumi docker per maggiori informazioni.

Riassumendo

Hai appreso dell’installazione di OpenSSH sul server Alpine Linux o della creazione di Docker Container con server OpenSSH utilizzando Alpine Linux come immagine di base. Vedere le seguenti pagine man usando il comando man:
man docker
man docker-run
man docker-build
man docker-volume


ANNUNCIO



Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi