728x90
도커 컨테이너 내에서 ssh 서버를 설정하는 방법
Dockerfile 파일 작성
FROM ubuntu:22.04
LABEL website="sangchul.kr"
ARG DEBIAN_FRONTEND=noninteractive
ARG SSH_USER=${SSH_USER:-ubuntu}
ARG SSH_PASSWORD=${SSH_PASSWORD:-ubuntu}
ENV TZ=Asia/Seoul
ENV SSH_USER=${SSH_USER}
ENV SSH_PASSWORD=${SSH_PASSWORD}
ENV PS1A="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "
RUN echo $TZ > /etc/timezone
RUN apt update \
&& apt upgrade -qq -y \
&& apt install -qq -y openssh-server \
aptitude sudo ssh vim curl \
net-tools iputils-ping traceroute netcat telnet dnsutils \
&& mkdir /var/run/sshd \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER root
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config \
&& sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config \
&& sed -i 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN mkdir -m 700 ~/.ssh \
&& echo 'PS1=$PS1A' >> ~/.bashrc \
&& echo 'export PS1="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "' >> ~/.profile \
&& echo "alias ll='ls -alh'" >> ~/.bashrc \
&& echo "root:root" | chpasswd
RUN useradd -c "System Administrator" -m -d /home/$SSH_USER -s /bin/bash $SSH_USER \
&& usermod -aG sudo $SSH_USER \
&& echo 'PS1=$PS1A' >> /home/$SSH_USER/.bashrc \
&& echo 'export PS1="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "' >> /home/$SSH_USER/.profile \
&& echo "alias ll='ls -alh'" >> /home/$SSH_USER/.bashrc \
&& mkdir -m 700 /home/$SSH_USER/.ssh \
&& chown $SSH_USER.$SSH_USER /home/$SSH_USER/.ssh \
&& echo "$SSH_USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
&& echo "$SSH_USER:$SSH_PASSWORD" | chpasswd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
이미지 빌드
docker build -t anti1346/ubuntu-sshd:22.04 .
docker build --build-arg SSH_USER=ubuntu --build-arg SSH_PASSWORD=ubuntu -t anti1346/ubuntu-sshd:22.04 .
도커 컨테이너 실행
docker run -d -p 2222:22 --name ssh-server anti1346/ubuntu-sshd:22.04
도커 컨테이너 접속
docker exec -it ssh-server bash
참고사이트 :
- github : https://github.com/anti1346/docker-ubuntu-sshd
728x90
'리눅스' 카테고리의 다른 글
우분투를 설치할 때 디스크 파티션을 나누는 방법(파티셔닝) (0) | 2022.05.18 |
---|---|
[url] linux one liners (0) | 2022.05.13 |
[리눅스] Spring Boot 프로젝트 생성, Dockerfile로 이미지 생성 및 빌드 (0) | 2022.05.09 |
[리눅스] 오픈소스 소프트웨어 보안 가이드북(SK인포섹 EQST그룹) (0) | 2022.05.07 |
EFK(Elasticsearch, Fluentd, Kibana) 스택을 Docker Compose를 사용하여 구성하는 방법 (0) | 2022.05.04 |