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_keys
和chmod 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.service
或service ssh restart
其它:
- 切换root用户
su root
参考
- SSH配置公钥登录 https://zhuanlan.zhihu.com/p/89872671
注意:本文归作者所有,未经作者允许,不得转载