Ubuntu下使用SSH登录root用户

前言

  Ubuntu默认没有安装SSH服务器是出于安全考虑。SSH(Secure Shell)是一种通过加密通道进行远程访问和管理的协议,它提供了对计算机系统的安全访问和通信。然而,由于SSH服务器可能成为潜在的安全风险,因此Ubuntu默认情况下并不安装SSH服务器。

  用户在需要使用SSH服务器时可以手动安装并配置SSH服务器,以便在需要时进行远程访问和管理。安装SSH服务器后,管理员应该采取适当的安全措施,如配置防火墙、限制用户访问权限、使用密钥认证等,以确保系统安全可靠。

  接下来的文章中将带大家使用Ubuntu 23.10 来安装SSH服务并通过root用户登录

一:在Ubuntu上启用SSH

(一):安装SSH服务并启用

bash 复制代码
Ⅰ:打开终端安装所需要的SSH服务
    sudo apt update                     # 更新系统软件包索引
    sudo apt install openssh-server     # 安装SSH服务
Ⅱ:开启SSH服务以及查看SSH服务
    sudo systemctl status ssh           # 查看SSH服务是否被启动
    sudo systemctl start ssh            # 开启SSH服务
    sudo systemctl stop ssh             # 关闭SSH服务
    sudo systemctl restart ssh          # 重启SSH服务

(二):远程连接SSH服务器

1. 基于密码验证连接

  上面我们开启了服务器的SSH服务,那么就是说我可以在其它任意一台带有SSH工具的电脑上进行连接,比如我们上面安装了SSH工具,就可以按照如下方式连接到其它服务器。

txt 复制代码
语法:ssh -p端口 主机名@IP地址
比如:ssh -p22 ubuntu@111.xxx.xxx.158

》第一次连接时,将看到下面的信息:
    The authenticity of host '111.xxx.xxx.158 (111.xxx.xxx.158)' can't be established.
    ED25519 key fingerprint is SHA256:Xkr3IeMVd1iSqd+uHjsxaia6QYBP1CmncAnrev9tGQE.
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
》输入yes并且你将会被提示输入你的密码:
    Warning: Permanently added '111.231.171.158' (ED25519) to the list of known hosts.
    ubuntu@111.231.171.158's password:
》输入正确密码后会看到默认的Ubuntu消息:
    Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-86-generic x86_64)
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    ......
这样就可以正常使用了,忘了说,若不知道ip地址的话则可以通过ip a 或 ip addr ls命令查询

说到这其实我们已经可以通过如 X S h e l l 工具来进行服务器的连接了 \color{#f00}{说到这其实我们已经可以通过如XShell工具来进行服务器的连接了} 说到这其实我们已经可以通过如XShell工具来进行服务器的连接了

1. 基于密钥验证连接

  使用密钥登录可以提供更高的安全性,而且可以免去记忆密码的烦恼,其次还有一个重要的就是防止密码暴力破解,因为密码登录存在被暴力破解的风险,特别是当远程登录服务暴露在公网时。而使用密钥登录可以有效防止密码暴力破解攻击,因为私钥相对于密码来说更难以被猜测或破解。

  所以默认通过ssh客户端命令登录远程服务器,需要提供远程系统上的帐号与密码,但为了降低密码泄露的机率和提高登陆的方便性,建议使用密钥验证方式。

txt 复制代码
【#### 操作步骤 ####】
Ⅰ:首先看看本地有没有公钥:
    cat ~/.ssh/id_rsa.pub
Ⅱ:若查看为空的话则需要生成一个(一路回车三次即可,要看详情则看下面的补充1)
    语法:
        ssh-keygen [-t rsa] [-b 1024] [-C comment]
            -t:指定要创建的密钥类型,默认是rsa
            -b:指定密钥长度,默认是2048
            -C:指定注释文字,默认是邮箱地址
    使用方式:
        方式1:需要手动确认
            ssh-keygen -t rsa -C test@qq.com
        方式2:无需回车自动应答方式
            ssh-keygen -t rsa -C test@qq.com -f ~/.ssh/id_rsa -P ""
Ⅲ:把我们生成的公钥拷贝到远程机器的authorized_keys文件里:
    语法:
        ssh-copy-id [-i [identity_file]] [user@]machine
            ssh-copy-id:命令
            -i :        指定下发公钥的路径
            [user@]:    以什么用户身份进行公钥分发(root),如果不输入,表示以当前登录的系统用户身份分发公钥
            machine:    下发公钥至那台服务器, 填写远程主机IP地址
    使用方式:
        方式1:推送公钥,[将A的公钥写入B的~/.ssh/authorized_keys文件中] 需要手动确认
            ssh-copy-id -i ~/.ssh/id_rsa.pub xiaofeng@192.168.224.134
Ⅳ:这样就可以直接登录了服务器B的xiaofeng用户了,不需要输入密码了
    登录测试
        ssh xiaofeng@192.168.224.134
补充1:
    Enter file in which to save the key (/home/your_username/.ssh/id_rsa):
        系统会询问你希期将新生成的密钥保存到哪个文件中。默认情况下,它会建议将密钥保存到:
        /home/your_username/.ssh/id_rsa,你可以按Enter键接受默认值,也可以输入其他路径和文件名。
    Enter passphrase (empty for no passphrase):
        如果你希望为私钥设置一个额外的密码保护,系统会要求你输入一个passphrase。这个passphrase并不是必需的,
        你可以留空以跳过此步骤,但添加passphrase能够提高私钥的安全性。
    Enter same passphrase again:
    如果你在上一步输入了passphrase,系统会再次要求你确认该passphrase,以确保你没有输错。

二:在Ubuntu上使用Root用户

  当使用Ubuntu操作系统时,默认情况下是禁止root用户登录的,这是为了增强系统的安全性。然而,在某些特定情况下,你可能需要启用root用户登录。在本节中,我们将详细介绍如何在Ubuntu 23.10版本下开启root用户登录。

bash 复制代码
》》》:为了更好编辑文件则使用vim
    执行: sudo apt install vim

Ⅰ:在普通用户下为root用户设置密码(这里我的密码是"1234qwer.")
    sudo passwd root
Ⅱ:测试之前的root用户是否可以登录(成功后执行exit退出)
    su -
Ⅲ:修改50-ubuntu.conf配置文件(若没有此文件则找类似的文件)
    sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
        后面添加如下配置:
            greeter-show-manual-login=true
            all-guest=false
Ⅳ:修改gdm-autologin配置文件(若没有此文件则找类似的文件)
    sudo vim /etc/pam.d/gdm-autologin
        注释如下配置:
            # auth  required   pam_succeed_if.so user != root quiet_success
Ⅴ:修改gdm-password配置文件(若没有此文件则找类似的文件)
    sudo vim /etc/pam.d/gdm-password
        注释如下配置:
            # auth  required   pam_succeed_if.so user != root quiet_success
Ⅵ:修改/root/.profile文件
    sudo vim /root/.profile
        注释如下配置:
            # mesg n 2> /dev/null || true
        添加如下配置:
            tty -s&&mesg n || true
到这也就完成了root用户的设置,我们注销当前用户重新选择root用户即可完成登录

注:在 r o o t 用户下虽然不用 s u d o 命令提高权限,但是需要谨慎操作 \color{#f00}{注:在root用户下虽然不用sudo命令提高权限,但是需要谨慎操作} 注:在root用户下虽然不用sudo命令提高权限,但是需要谨慎操作

  我们已经成功在Ubuntu上设置了root用户,并且也可以使用主机登录上root用户,但是细心的会发现,使用远程的SSH工具并不可以登录root用户,其实这个是Ubuntu的安全策略,一旦root密码泄露可以说和这个系统说拜拜了。

bash 复制代码
修改/etc/ssh/sshd_config配置文件
    sudo vim /etc/ssh/sshd_config
        修改Authentication一栏里的配置:
        注释:
            #PermitRootLogin prohibit-password
        添加:
            PermitRootLogin yes   
重启ssh服务:
    sudo systemctl restart ssh
               
补充说明:
    这个配置文件是SSH服务器的配置文件,其中包含各种SSH服务器的设置,
    如允许的协议版本、登录认证方法、加密方式等
相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务