Linux使用系列(3) —— 开启SSH远程登录

一. 修改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
    
  3. 需要重启sshd服务:systemctl restart sshd
  4. 检查sshd服务是否启动:systemctl status sshd
  5. 现在已经可以使用密码远程登陆Linux服务器了,如果有防火墙一定要开启防火墙,否则访问会被拦截。
  6. 考虑到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
    
  5. 将上传的公钥追加到公钥数据中:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
  6. 再次回到服务器端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
    
  7. 重启sshd服务:systemctl restart sshd
posted @ 2021-01-01 02:39  苍凉温暖  阅读(2387)  评论(0编辑  收藏  举报