linux新机快速配置ssh

配置SSH以实现证书登录

要配置新的Linux机器以实现证书登录,您需要执行以下步骤:

  1. 安装SSH服务器:

    复制代码
    sudo apt-get install openssh-server
  2. 修改SSH端口(可选):

    • SSH配置文件(通常位于/etc/ssh/sshd_config),

      复制代码
      #Port 22

      修改为所需的端口号,并重新启动SSH服务

      sudo systemctl restart sshd

  3. 创建新的管理员账户和普通账户:

    • 您可以使用以下命令创建新的管理员账户和普通账户。将<username>替换为您想要创建的用户名。
      • 创建管理员账户:

        复制代码
        sudo adduser <username>
        sudo usermod -aG wheel <username>
        sudo passwd <username>
      • 创建普通账户:

        复制代码
        sudo adduser <username>
        sudo passwd <username>
  4. 配置证书登录:

    • 生成SSH密钥对:

      • 在本地计算机,并使用以下命令生成SSH密钥对:

        复制代码
        ssh-keygen -t rsa
    • 将公钥复制到Linux机器:

      mkdir -p ~/.ssh
      cd ~/.ssh
      touch ~/.ssh/id_rsa.pub
      vim ~/.ssh/id_rsa.pub

    • 使用以下命令将公钥复制到Linux机器上的新账户的~/.ssh/authorized_keys文件中:

      复制代码
      ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<linux_machine_ip>
    • 输入新账户的密码进行验证。

    • 将id_rsa.pub改成600权限(最安全且不容易引起ssh权限出错的权限。如设置为400(只读)最最为安全,但有可能引起ssh权限错误)

      sudo chmod 600 ~/.ssh/id_rsa.pub

    • 禁用root密码登录,启用普通用户密码登录(默认配置已有):

      复制代码
      sudo vim /etc/ssh/sshd_config
      • PermitRootLogin prohibit-password
      • PasswordAuthentication yes

      保存文件并重新启动SSH服务以使更改生效。

      复制代码
      sudo systemctl restart sshd
  5. 设置SELinux和Firewalld开放端口:

    • SELinux:

      复制代码
      sudo dnf install policycoreutils-python-utils
      sudo setsebool -P sshd_use_ssh_keysign on
    • Firewalld:

      复制代码
      sudo firewall-cmd --permanent --add-service=ssh
      sudo firewall-cmd --reload
  6. 重启SSH服务:

    • 最后,使用以下命令重启SSH服务以使所有更改生效:

      复制代码
      sudo systemctl restart sshd

      快速配置:

    #!/bin/bash

    安装SSH服务器

    sudo apt-get install openssh-server -y

    修改SSH端口(可选)

    sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config
    sudo systemctl restart sshd

    创建新的管理员账户

    read -p "请输入管理员账户名: " admin_username
    sudo adduser admin_username sudo usermod -aG sudo admin_username

    创建新的普通账户

    read -p "请输入普通账户名: " normal_username
    sudo adduser $normal_username

    配置证书登录

    read -p "请输入本地计算机上生成的公钥文件路径: " public_key_path
    ssh-copy-id -i public_key_path admin_username@localhost
    ssh-copy-id -i public_key_path normal_username@localhost

    禁用root密码登录

    sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config
    sudo systemctl restart sshd

    设置SELinux和Firewalld开放端口

    sudo setsebool -P sshd_use_ssh_keysign on
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload

    重启SSH服务

    sudo systemctl restart sshd

    echo "SSH配置完成!"

相关推荐
qq_3129201115 分钟前
Nginx限流与防爬虫与安全配置方案
运维·爬虫·nginx·安全
GanGuaGua22 分钟前
Linux系统:线程的互斥和安全
linux·运维·服务器·c语言·c++·安全
lsnm31 分钟前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
全糖去冰吃不了苦31 分钟前
ELK 集群部署实战
运维·jenkins
不掰手腕44 分钟前
在UnionTech OS Server 20 (统信UOS服务器版) 上离线安装PostgreSQL (pgsql) 数据库
linux·数据库·postgresql
Lynnxiaowen1 小时前
今天继续昨天的正则表达式进行学习
linux·运维·学习·正则表达式·云计算·bash
努力学习的小廉1 小时前
深入了解linux系统—— POSIX信号量
linux·运维·服务器
刘一说1 小时前
CentOS部署ELK Stack完整指南
linux·elk·centos
从零开始的ops生活2 小时前
【Day 50 】Linux-nginx反向代理与负载均衡
linux·nginx
IT成长日记2 小时前
【Linux基础】Linux系统配置IP详解:从入门到精通
linux·运维·tcp/ip·ip地址配置