使用 SSH key 登录服务器具有更好的安全性,可防止暴力破解。
SSH key 类型
rsa
:最常用,兼容性最好。默认使用2048
长度密钥。ed25519
:最安全、加解密速度最快。如非有特殊的兼容性需求,是首选的类型。
生成方式
# ed25519 类型
ssh-keygen -t ed25519 -C "root@ujcms.com"
# rsa 类型。如需更高的安全性,可以设置长度为 4096
ssh-keygen -t rsa -b 4096 -C "user@example.com"
密钥文件
会生成一个公钥和一个私钥。
ed25519
。私钥:~/.ssh/id_ed25519
;公钥:~/.ssh/id_ed25519.pub
。rsa
:私钥:~/.ssh/id_rsa
;公钥:~/.ssh/id_rsa.pub
。
公钥需要加入到服务器相应账户的 ~/.ssh/authorized_keys
文件中。如:cat id_rsa.pub >> authorized_keys
。
私钥则在登录时使用。如 ssh -i ~/.ssh/id_ed25519 user@ip "cat /etc/hostname"
。
实例
创建一个用于 ci/cd 的用户,用于操作 docker,并使用 SSH key 登录。
# -m 创建 /home/cicduser, -s 明确指定 shell 类型
sudo useradd -m -s /bin/bash cicduser
# 加入 docker 用户组
sudo usermod -aG docker cicduser
# 验证是否加入 docker 用户组
groups cicduser