Найти тему
10 подписчиков

В ответ на пост


Упаковал запуск этого докер-образа который выставляет наружу ssh-порт в один криповый bash-скрипт (удобно ansible-плейбуки проигрывать, Ctrl+D, вверх, Enter и снова имеем чистую «виртуалку», на которую можно снова чего-нибудь попробовать накатить):

#!/bin/bash

IMAGE_NAME="ubuntu-with-sshd"

CONTAINER_NAME="ubuntu-with-sshd"

SSH_PORT=9022

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

if [[ "$(docker images -q $IMAGE_NAME 2> /dev/null)" == "" ]]; then

cat > $DIR/Dockerfile <<- EOM

FROM ubuntu:22.04

RUN apt update && apt install -y openssh-server python3 && \\

(echo "chown -R root:root /root/.ssh /etc/ssh && service ssh start" >> /root/init-file)

EOM

docker build -t $IMAGE_NAME $DIR

fi

if [ ! -d "$DIR/.ssh" ]

then

mkdir $DIR/.ssh

cp ~/.ssh/id_rsa.pub $DIR/.ssh/authorized_keys

fi

if [ ! -d "$DIR/ssh" ]

then

docker run --name $CONTAINER_NAME $IMAGE_NAME

docker cp $CONTAINER_NAME:/etc/ssh $DIR/ssh

docker rm $CONTAINER_NAME

fi

docker run -it --rm --name $CONTAINER_NAME \

-p $SSH_PORT:22 \

-v $DIR/.ssh:/root/.ssh \

-v $DIR/ssh:/etc/ssh \

$IMAGE_NAME /bin/bash --init-file /root/init-file
Около минуты