本文记录微信公众号后台部署时 阿里云 ECS 服务器的配置和管理。

阿里云 ECS

通过实践,个人感觉 ECS 机器层面的配置主要包括:

  • 用户管理:参考后文
  • 安全组配置:在阿里云 Web 管理系统中完成,具体可参考 添加安全组规则

References

用户管理

为了避免在服务器外部使用 root 用户登录,在此创建具有 root 权限的新用户,通过该用户远程管理服务器;

注: 操作过程中不要退出已登录的 root,一定要确保创建的新用户可以远程登录,并且可以切换到 root 用户时,再禁用 root 用户的远程登录权限,否则可能再也无法连上服务器;

主要参考文章 阿里云服务器ESC环境(二) - SSH安全配置 完成配置。

创建新用户

  • 登录 root 用户
  • adduser username
  • /etc/sudoers 文件中添加 username ALL=(ALL:ALL) ALL,使 username 具有 susudo 权限;

对新用户添加公钥

  • ssh-keygen -t rsa -b 4096 -C "email" 在本地生成私钥和公钥,假设私钥名称为 username_id_rsa
  • ssh-add username_id_rsa 将新生成的密钥添加到环境中,后续使用密钥时就可以不用输入密码了;
  • ssh username@ip 打开新的 shell 窗口,用刚才新建的账户登录服务器;
  • mkdir .ssh
  • cd .ssh
  • vim authorized_keys 在其中填入公钥 username_id_rsa.pub 的内容;
  • exit 退出登录;
  • ssh -i ~/.ssh/username_id_rsa username@ip 尝试用私钥登录,并测试 susudo 权限;

若上述操作成功,则该新用户支持两种方式的远程访问:

  • ssh 私钥登录;
  • 密码登录;

禁用 root 用户登录

  • 登录 root 用户;
  • 修改 /etc/ssh/sshd_config 文件中的 PermitRootLoginno
  • 重启 ssh:service ssh restart

此时 root 将无法通过密码远程登录;

ssh 连接断开

Mac 下 ssh 连接阿里云稍微长时间不操作,就会断开连接,比较烦,完成如下配置就不会断开了:

~/.ssh/config 文件中增加一行配置 : ServerAliveInterval 60

~/.ssh/config
1
2
Host *
ServerAliveInterval 60

References