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 | sì |
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:
- Cerca il pacchetto ssh, esegui:
apk search openssh - Installa il server e il client OpenSSH usando il comando apk:
apk aggiungi openssh - Abilita il servizio sshd all’avvio:
rc-update aggiungi sshd
Uscite:* service sshd added to runlevel default
- 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 ]
- Modifica il /etc/ssh/sshd_config a scopo di personalizzazione.
- 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.
- 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:
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