linux ssh 安全强化

背景:centos7或者ubuntu、OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013、xshell5

一、修改端口号

nmap、钟馗之眼等一些扫描工具会扫描一些常见端口,sshd的22端口必定也在其中

修改/etc/ssh/sshd_config,把 Port 22 修改成你喜欢的端口号,最好是>10000,但是要<65535

二、使用证书登录

1. 生成密钥,我这里用的是xshell 5

linux ssh 安全强化_第1张图片
生成密钥.png
linux ssh 安全强化_第2张图片
生成密钥.PNG

类型选择RSA,长度自己喜欢

linux ssh 安全强化_第3张图片
生成密钥.PNG
linux ssh 安全强化_第4张图片
生成密钥.PNG

这里可以选择保存为文件,然后使用winscp上传到服务器,然后拷贝内容到(你要登录的用户的home目录)/.ssh/authorized_keys

  如:cat id_rsa_2048.pub >>/home/(你要登录的用户用户名)/.ssh/authorized_keys

(推荐)或者直接拷贝公钥到/home/(你要登录的用户用户名)/.ssh/authorized_keys,没有.ssh文件夹和authorized_keys就自己新建一个,不过要注意文件所属者

1.1.(推荐)或者使用ssh-keygen 生成密钥

选项

  • -t #密钥类型,dsa | ecdsa | ed25519 | rsa | rsa1
  • -b bits #密钥长度 1024 | 2048 |4096 | 8192,默认2048
例:ssh-keygen -t rsa -b 4096

然后可以在/home/(user)/.ssh/ 目录中找到一对密钥id_rsa是私钥, id_rsa.pub是公钥,然后把公钥复制到authorized_keys,私钥自己留着

ok!到这里我们就得到一对密钥了,一个是公钥(已经拷贝到服务器上了),一个是私钥,在xshell5上(在工具->用户密钥管理者可以看到),私钥要导出来,然后随身携带,否者就无法登录自己的服务器了

2.修改/etc/ssh/sshd_config,修改以下几个选项

  • PermitRootLogin no #不允许root登录
  • StrictModes no #解决Authentication refused: bad ownership or modes for file /home/---/.ssh/authorized_keys的问题
  • RSAAuthentication yes #开启RSA类型认证
  • AuthorizedKeysFile .ssh/authorized_keys #认证密钥文件位置
  • PasswordAuthentication no #不允许直接密码登录(有了证书登录,就不用密码登录了)

3.登陆服务器

service sshd restart
尝试登录:

linux ssh 安全强化_第5张图片
登录.PNG
linux ssh 安全强化_第6张图片
OK!.PNG

你可能感兴趣的:(linux ssh 安全强化)