ssh登陆管理
ssh登陆管理
我们的项目本身有大量的云服务器,装机的时候用了统一的装机脚本,云服务器的密码都是一样的,因为早期只有几个核心程序员有登陆云服务器的权限,所以并没有对这方面做管理。直到有一个核心程序员离职,不得不管理一下手头的服务器
首先所有对服务器有操作权限的人员提供自己的ssh-key秘钥对,一般使用rsa秘钥,然后把这些秘钥对中的公钥(.pub)添加到服务器的/home/service/.ssh/authorized_keys
文件中,新添加的公钥直接在该文件后面添加即可。
为了提升服务器的整体安全性,我们需要对ssh进行配置:
vim /etc/ssh/sshd_config
修改配置文件并主要修改以下几个参数
PermitRootLogin no #禁止root登录
PubkeyAuthentication yes #启用公告密钥配对认证方式
RSAAuthentication yes #允许RSA密钥
PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH的 RSA认证登录就没有意义了。
修改后重启
service sshd restart
如果服务器上没有.ssh
文件夹,那么我们需要自己来创建:
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
#将公钥内容写入文件
cat /data/service/Identity.pub >> authorized_keys
这样如果有人离职,只需要把服务器上对应人员的公钥删除就可以了。
一些其他关于ssh的记录
# 123.206.76.219:4306 是远端的ip和port,2009是远端的SSH端口,service是远端的ssh账号
# 44306:127.0.0.1是自己本地的port和ip
ssh -fN -L44306:127.0.0.1:4306 service@123.206.76.219 -p2009
这个命令特别“绕”,不记录一下根本记不住…它实现的功能是ssh的端口映射,通过ssh将一个远端ip:port映射到本地,适用于非同一局域网内的机器。
在我们的项目中因为腾讯的服务器必须使用腾讯云,跟阿里云不是在一个局域网内的,但是他们之间又要有mysql的访问需求,所以通过ssh做了这个端口映射,记录一下。