对于 Linux 新手来说,搭建 Docker 环境并保证远程访问安全是常见需求。传统的密码登录容易被暴力破解,而密钥登录结合 Docker 与 Docker-Compose 可以让你既安全又高效地管理容器化应用。本教程将带你从零开始,在 Linux 服务器上配置 SSH 密钥登录,并安装 Docker 与 Docker-Compose,每一步都附有命令和配图占位,助你快速上手。
—
一、生成 SSH 密钥对(本地客户端)
在本地机器(如你的个人电脑)上生成一对密钥:私钥(id_rsa)和公钥(id_rsa.pub)。私钥必须妥善保管,公钥将上传到服务器。
打开本地终端,执行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"按提示选择保存路径(默认 ~/.ssh/id_rsa)设置一个安全的 passphrase(可选)。生成成功后,你会看到类似输出:
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub—
二、将公钥复制到 Linux 服务器
使用 ssh-copy-id 工具将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。若服务器尚未开启 SSH 服务,请先确保已安装并启动 sshd。
在本地终端执行(将 user 替换为你的服务器用户名,server_ip 替换为服务器 IP):
ssh-copy-id user@server_ip输入一次密码后,公钥即被上传。手动方式也可用:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"—
三、测试密钥登录
完成公钥上传后,尝试使用密钥直接登录服务器,无需输入密码:
ssh user@server_ip如果配置正确,你将直接进入服务器 shell。若遇到权限问题,检查服务器上 ~/.ssh 目录权限(应为 700)和 authorized_keys 文件权限(应为 600)。
—
四、禁用密码登录(可选但推荐)
为进一步提升安全性,可以禁止服务器使用密码登录,仅允许密钥认证。编辑服务器上的 SSH 配置文件:
sudo vi /etc/ssh/sshd_config找到以下参数并修改:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no保存后重启 SSH 服务:
sudo systemctl restart sshd> 注意:务必先确认密钥登录可用,再禁用密码,否则可能把自己锁在门外。
—
五、安装 Docker
使用官方脚本或包管理器安装 Docker。推荐使用官方仓库以确保版本最新。
方法一:使用官方安装脚本(最简便)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh方法二:使用 apt(Debian/Ubuntu)
sudo apt update
sudo apt install docker.io安装完成后,将当前用户加入 docker 组,避免每次使用 sudo:
sudo usermod -aG docker $USER登出并重新登录(或执行 newgrp docker)使组生效。
—
六、安装 Docker-Compose
Docker-Compose 是用于定义和运行多容器 Docker 应用的工具。官方推荐通过 GitHub 发行版下载二进制文件。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose验证安装:
docker-compose --version输出类似 docker-compose version 2.27.0 即成功。
—
七、验证 Docker 与 Docker-Compose 工作正常
运行一个简单的测试来确保环境。执行以下命令启动一个 Nginx 容器:
docker run -d -p 80:80 --name test-nginx nginx:alpine然后在浏览器访问 http://,应看到 Nginx 欢迎页。再创建一个简单的 docker-compose.yml:
version: '3'
services:
web:
image: nginx:alpine
ports:
- "8080:80"执行:
docker-compose up -d访问 http://:8080 确认服务正常。至此,你已经完成了密钥登录的 Linux 服务器上 Docker 与 Docker-Compose 的完整配置。
—
通过以上步骤,你不仅掌握了 SSH 密钥登录的安全配置,还成功搭建了 Docker 和 Docker-Compose 环境。后续你可以在此基础上部署任何容器化应用,享受高效、安全的运维体验。如果你在配置过程中遇到问题,欢迎在评论区留言交流。





评论(0)