建立sshd服務容器,並使宿主機與容器免密通訊

anyux發表於2024-07-29
#docker 建立私有網路,用於將來docker建立的容器指定靜態ip
docker network create --driver bridge --subnet=192.168.1.0/24 --gateway=192.168.1.1 my_custom_network
部署一個名為my_sshd_container12的Docker容器
container_name="my_sshd_container12"
ip=192.168.1.12

docker stop ${container_name} || true
docker rm ${container_name} || true

docker run \
-d \
-m 20M \
--memory-swap=20M \
--cpus=0.1  \
--network=my_custom_network \
--ip=${ip} \
--volume /root/tmp/${ip}:/root/.ssh/ \
--name ${container_name} \
--hostname ${container_name} \
rastasheep/ubuntu-sshd

# 為特定的IP地址(這裡是192.168.1.15)生成SSH金鑰對
# 然後使用sshpass工具自動輸入密碼來登入遠端伺服器
# 並將新生成的金鑰新增到遠端伺服器的/root/.ssh/authorized_keys檔案中,以便以後可以使用金鑰而不是密碼登入
ip=192.168.1.15
ssh-keygen -N "" -b 2048 -t rsa -C "stanley@magedu.com" -f /root/tmp/${ip}/stanley.rsa
sshpass -p "ttt" ssh -o StrictHostKeyChecking=no root@${ip}
sshpass -p "root" ssh-copy-id -i /root/tmp/${ip}/stanley.rsa root@${ip}
ssh -i /root/tmp/${ip}/stanley.rsa root@${ip} hostname

相關文章