LINUX SERVER MANAGE TIPS

Server Nov 09, 2019

权限管理

  • 使用密钥登录服务器
  • 禁用密码登录
  • 修改 ssh 默认的 22 端口

使用密钥登录服务器

本地生成密钥(本地应该默认有 id_rsa id_rsa.pub 密钥)

cd ~/.ssh
ssh-keygen -t rsa

将本地公钥上传到服务器

ssh-copy-id -i <id>_rsa.pub <host:port>

(或者)也可以手动将本地 <id_rsa.pub> 文件里的内容粘贴到目标服务器的 ~/.ssh/authorized_keys 文件里

服务器 ssh 配置文件 /etc/ssh/sshd_config,修改端口,并禁止密码登录

#Port 22 -> Port 10086

#PasswordAuthentication yes -> PasswordAuthentication no

修改后重启生效

sudo /etc/init.d/ssh restart

连接 ssh

使用 socks5 连接 ssh

ssh -o ProxyCommand='nc -x 127.0.0.1:7891 %h %p' [email protected]

使用 ssh -L 参数做端口转发
比如转发 MySQL 端口,在连接 ssh 之后就可以本地访问线上服务器的数据库了

ssh [email protected] -L127.0.0.1:23306:172.31.0.222:3306

使用跳板机连接 ssh

ssh -J [email protected] [email protected]

最小权限原则:不要万事全用root

TODO:

常用软件推荐

  • htop 查看服务器运行状态
  • byobu 多窗口、多 session 使用终端
  • screen 简单运行后台任务
  • supervisor 进程守护工具

TIPS:

  • 推荐使用 Docker Compose 管理运行线上服务
  • 运行对外服务程序,请尽量监听本地端口,特别是数据库程序,然后使用 nginx 之类的程序做端口转发
  • 数据库程序即便是有设置密码鉴权也不要开放给公网,用上文说到的办法连接数据库(因为很重要再说一遍)
  • 服务器数据周期性备份
  • 【For Mainland China Only】 不要在直连SSH的情况下产生回国方向的大流量,避免被误认为SSH爬梯子导致服务器墙

ココロ

用我的双手成就你的______。