目录

  • 一. 修改SSH配置文件
  • 二. 使用Linux创建密钥并且限制登陆方式

一. 修改SSH配置文件

  1. 因为Linux安装的时候会默认安装openssh,所以基本不需要再次安装。
    可以使用命令检查是否已经安装:yum list installed | grep openssh-server
  2. 用文本编辑器打开配置文件:/etc/ssh/sshd_config 修改以下项:
# 文本编辑器打开配置文件
nano /etc/ssh/sshd_config
# 取消以下配置的注释
# 监听端口号,为了隐蔽性可以修改,但是需要同步修改防火墙
Port 22
# 监听地址,全部监听
ListenAddress 0.0.0.0 
# 使用SSH v2版本
Protocol 2
# 禁用DNS反向解析
UseDNS no
  1. 需要重启sshd服务:systemctl restart sshd
  2. 检查sshd服务是否启动:systemctl status sshd
  3. 现在已经可以使用密码远程登陆Linux服务器了,如果有防火墙一定要开启防火墙,否则访问会被拦截。
  4. 考虑到SSH是要随着系统启动的重要工具,所以建议加入开启自启中。不过安装系统的时候一般Linux会默认加入开机自启。
# 检查是否已经在自启清单
systemctl list-unit-files | grep sshd
# 如果“sshd.service”已经是“enabled”就不需要执行下面的命令
# 加入自启
systemctl enable sshd.service

二. 使用Linux创建密钥并且限制登陆方式

  1. 进入需要登陆的用户ssh目录:cd /root/.ssh,如果没有这个目录,需要先进行登陆才会生成:ssh localhost
  2. 在客户端生成SSH密钥对,这个不需要说明,流程很简单。
  3. 上传公钥id_rsa.pub到Linux服务器端的.ssh文件夹中。
  4. 检查服务器端的.ssh文件夹中是否有authorized_keys文件,如果没有,使用如下方式创建。
# 创建文件
touch authorized_keys
# 赋予权限
chmod 600 /root/.ssh/authorized_keys
  1. 将上传的公钥追加到公钥数据中:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
  2. 再次回到服务器端SSH配置文件,进行配置
# 打开配置文件
nano /etc/ssh/sshd_config
# 修改以下配置
# 启用密码验证
PasswordAuthentication yes
# 启用密钥对验证(配置了密钥会优先使用密钥)
PubkeyAuthentication yes
# 指定公钥库文件
AuthorizedKeysFile      .ssh/authorized_keys
# 同时为了保证登陆安全,需要做以下配置
# 登录验证时间为2分钟
LoginGraceTime 2m
# 最大重试次数为6次
MaxAuthTries 6
# 禁止空密码登录
PermitEmptyPasswords no
# 开启远程登录root(手动输入)
PermitRootLogin yes
  1. 重启sshd服务:systemctl restart sshd