docker安装ubuntu,ssh安全访问

ragnar 1年前 ⋅ 195 阅读

1 环境

  • 寄主机操作系统:Windows10
  • 容器软件:Docker Desktop v4.18.0
  • Ubuntu镜像:latest

2 命令行安装ubuntu镜像

# 拉取ubuntu镜像
docker pull ubuntu

# 创建容器,映射ssh端口
docker run -itd --restart=always --name=ubuntu -p 22:22 ubuntu:latest

3 安装ssh

# 安装ssh服务端【我们选择openssh】
apt install openssh-server

# 安装ssh客户端【如果需要的话】
apt install openssh-client

apt工具的资源可能不是最新,需要先执行一下命令apt update来更新一下。

4 安全访问

4.1 创建用户

# 创建新用户
useradd user1

# -r:建立系统账号 -m:自动建立用户的登入目录 -s:指定用户登入后所使用的shell
# useradd -r -m -s /bin/bash user1

# 设置密码->输入并重复确认密码
passwd user1

4.2 启用ssh公钥,关闭密码登录

生成密钥:

# 用 ssh-keygen 来生成密钥,-t 指定加密算法为 rsa
ssh-keygen -t rsa

# 一路回车即可,最后在~/.ssh/目录生成两个文件:
# id_rsa		--私钥
# id_rsa.pub	--公钥

启用ssh公钥,关闭密码登录:

  • 提取公钥。到~/.ssh/目录执行命令cat id_rsa.pub >> authorized_keys,把公钥放到新建authorized_keys文件中;
  • 修改文件和目录权限。执行chmod 600 ~/.ssh/authorized_keyschmod 700 ~/.ssh,给authorized_keys文件和.ssh目录对应的权限;
  • 修改ssh服务配置。vim打开配置文件/etc/ssh/sshd_config
    • 开启公钥认证。把PubkeyAuthentication将no改为yes;
    • 关闭密码认证。把PasswordAuthentication将yes改为no。
  • 下载私钥。我用的是sftp工具,sftp user1@taget_ip然后到~/.ssh/目录下通过get命令直接下载。
  • 重启ssh服务:systemctl restart sshd.serviceservice ssh restart

其它

  • 切换root用户
su root

参考

  • SSH配置公钥登录 https://zhuanlan.zhihu.com/p/89872671

全部评论: 0

    我有话说:

    目录