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做了这个端口映射,记录一下。