侧边栏壁纸

Oracle 如何将默认的「密钥登录」改为「root密码登录」?

2025年08月23日 215阅读 0评论 0点赞

【前言】

有幸使用过甲骨文云的人,都对它的使用体验赞不绝口。

用 Oracle Cloud 的免费账号,可以最多分配4台服务器,

用它们来搭建自用网站,真的非常的酷爽的一件事。

不过我们大多数人都因为的长期使用微软系列、苹果系列、谷歌系列 C 端产品产品和服务,

习惯了「用户名」+ 「密码」的登录方式,

而 Oracle Cloud 偏偏在创建服务器(甲骨文云的官方称呼为“实例”)的时候,

只有(其实是默认) SSH 密钥的登录方式。

Oracle cloud 默认为 SSH 密钥的登录方式

好好好!你最行可以了吧?(真是拿人的手短,吃人的嘴软)

问题到了建站的环节,我们还是希望将其改成「root密码登录」的方式更高效,

那么今天我们就来讲讲三种常用的将「密钥登录」改为「root密码登录」的思路和具体操作步骤。


【方法一】在甲骨文云创建实例时,就把登录方式设置为密码登录

估计你要问 :What ?竟然创建的时候就有这样的方式,为何早不告诉我 ?

其实在实例创建的时候,并没有一个开关或按钮是可以直接设置为密码登录的,

他是要把【方案二】的那段代码,在创建实例的时候就前置设置好。

那么到底在哪个地方设置呢?

▶ 第一步:创建实例时,先找到最下面的”管理“菜单中找到初始化脚本行,且看下图:

img

初始化脚本行的设置方法

▶ 第二步:具体以下代码,填入「cloud-init 脚本」下方的方框内:

#!/bin/bash
echo root:密码|sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart
第二行的密码替换为你要设置的密码,然后正常创建实例。

▶ 第三步:登陆SSH

1.使用默认用户登录,使用您的SSH 客户端,以ubuntu 或opc 用户名加生成或者保存的私钥登录到您的甲骨文实例

切换为root权限

sudo -i

2.因为之前创建实例的时候已经创建了启动cloud-init 脚本命令,所有只需要执行如下命令

echo "PasswordAuthentication yes" > /etc/ssh/sshd_config.d/60-cloudimg-settings.conf

备注:执行这行命令的原因是:

在 /etc/ssh/sshd_config.d/60-cloudimg-settings.conf 文件中有一行:PasswordAuthentication no
这个配置会覆盖主配置文件中的设置。这是甲骨文云镜像的默认安全设置。所以让我们解决这个问题:
修改这个文件,执行
echo "PasswordAuthentication yes" > /etc/ssh/sshd_config.d/60-cloudimg-settings.conf

3.最后执行重启命令即可

reboot

4.等待片刻待实例重启完成后,在FinalShell连接工具里编辑这个实例登陆方式为密码登陆,用户名为root。到此开始以后你登陆就会一直是root权限登陆模式了

img


【方法二】科技Lion的Shell脚本工具

▶ 第一步:正常创建实例并登陆SSH

1.使用默认用户登录,使用您的SSH 客户端,以ubuntu 或opc 用户名加生成或者保存的私钥登录到您的甲骨文实例

切换为root权限

sudo -i

▶ 第二步:运行科技Lion的Shell脚本工具:

bash <(curl -sL kejilion.sh)

粘贴并回车后键入y再次回车确认

▶ 第三步:选择9进入甲骨文云脚本合集(选择13进入系统工具也可以,我以9做示范)

▶ 第四步:选择5进入开启ROOT密码登陆模式**

▶ 第五步:输入你要设置的密码回车后再次输入一遍并回车确认

需要注意,你输入的密码是不会显示出来的,放心输入就行了

▶ 第六步:提示设置完毕,回车退出脚本reboot重启一下用root模式登陆即可


【方法三】后台 SSH 修改参数(我反正不爱用这种)

▶ 第一步:正常创建实例完成后默认SSH 登录

通过 SSH 客户端软件 (本次我使用的是 FinalShell ) 使用搭建实例时下载的密钥文件(私钥),远程登录服务器

▶ 第二步: 切换 root 用户登录

由默认的「ubuntu 」或「 opc」 用户,切换到「root」用户登录,在 SSH 客户端键入如下命令并回车:

sudo -i

此时, SSH 客户端会显示,此时已切换为「root」用户登录

root@此处为你的实例名称:~#  <呈现结果>

▶ 第三步: 为 root 用户设置密码

设置「root」用户密码,在 SSH 客户端键入如下命令并回车:

sudo passwd

此时,SSH 客户端会显示如下内容,请输入你想要设置的「root」用户的密码并回车:

New password:此处输入你想要设置的密码 <回车>                (此处为备注字段 :左侧输入的密码会自动隐身,不用担心,盲打输入即可)
【注意】
此处在键入密码时,屏幕不会有任何反馈,你录入的密码好像隐身一样
不用怀疑,这不是键盘坏了,仅仅是该语言为了保护你的密码安全,自动有这样的防御机制

在第一次盲打密码后,会再次弹出以下界面,同样再次键入同样的密码并回车:

Retype new password:此处再次输入你想要设置的密码 <回车>    (此处为备注字段 :左侧输入的密码会自动隐身,不用担心,盲打输入即可)

此时,如果两次输入无误的情况下,屏幕会给你一个反馈,提示设置密码成功.

passwd: password updated successfully <呈现结果>          

▶ 第四步: 修改服务器端配置文件

上面仅仅是给「root」用户新设了密码,但服务器端依然还是默认我们通过ubuntu这个用户来登录,

接下来,我们通过修改 oracle 服务器端该实例下的一个文件,来实现切换默认登陆的用户为「root」

此时,我们继续在 SSH 客户端输入如下命令并回车:

vim /etc/ssh/sshd_config

此时进入vim编辑器中,键入i进入编辑模式

找到如图红线的两行代码,分别在34行和58行

1 - 将 “ #PermitRootLogin prohibit-password ” 修改为 “ #PermitRootLogin yes ” ,并且释放 “ # ” 注释(就是删除掉#)

代码含义为开启root登录

#PermitRootLogin prohibit-password

改为

PermitRootLogin yes

2 - 将 “ PasswordAuthentication no ” 修改为 “ PasswordAuthentication yes ” 。并且释放 “ # ” 注释(就是删除掉#)

如果像我这样本身就是yes的,就不用动了

代码含义为开启密码验证

#PasswordAuthentication no

改为(但是我打开就是yes不用改了)

#PasswordAuthentication yes

编辑完后,不要忘了点击键盘最左上角的 “ ESC ” 键盘,退出 Vim的命令行模式或插入模式,然后按住Shift+:,此时编辑器最下面就会显示这个:(是编辑器内显示可不是命令输入框内显示),再:输入wq,回车就保存并退出vim编辑器了。

至此,通过 Vim 编辑器,修改 “ sshd_config ” 的步骤就操作完毕并保存了。

网上所有的教程到这里就结束了,其实少了下面最重要的一步,导致我用这个方法怎么连接都连不上。

▶ 第五步: 修改甲骨文云镜像的默认安全设置文件

在下面的这个路径中文件名为:60-cloudimg-settings.conf的这个文件就是甲骨文云镜像的默认安全设置文件,如果你不改它,它还是会把Vim编辑器编辑的yes给顶掉

我的SSH工具是FinalShell,所以如图所示文件路径:

/etc/ssh/sshd_config.d

这个文件目前显示开启密码验证依然是 “PasswordAuthentication no”

接下来在SSH命令行中输入如下命令并回车

echo "PasswordAuthentication yes" > /etc/ssh/sshd_config.d/60-cloudimg-settings.conf

然后回到/etc/ssh/sshd_config.d文件检查是否生效如下图

这就算是完成了编辑

▶ 第六步: 重启服务器

1.但这一操作并不代表在该实例端奏效了,需要我们通过以下命令重启该服务器才行:

reboot                <回车>

2.等待片刻待实例重启完成后,在FinalShell连接工具里编辑这个实例登陆方式为密码登陆,用户名为root。到此开始以后你登陆就会一直是root权限登陆模式了

这个方法不如前两种方便一般我不用

【方法四】其实就是把手动打开并修改 “ sshd_config ” 的步骤,直接用代码来完成

▶ 第一步到第二步与方法三一致

▶ 第一步:正常创建实例完成后默认SSH 登录

通过 SSH 客户端软件 (本次我使用的是 FinalShell ) 使用搭建实例时下载的密钥文件(私钥),远程登录服务器

▶ 第二步: 切换 root 用户登录

由默认的「ubuntu 」或「 opc」 用户,切换到「root」用户登录,在 SSH 客户端键入如下命令并回车:

sudo -i

此时, SSH 客户端会显示,此时已切换为「root」用户登录

▶ 第三步:输入以下代码,设置 root 密码 并 同时修改“ sshd_config ” 的三项配置

一行一行输入并回车

1.设置root密码:

echo root:密码|sudo chpasswd root

2.开启ROOT登陆:

sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;

3.开启密码验证:

sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;

4.强制覆盖甲骨文云镜像的默认安全设置文件:

echo "PasswordAuthentication yes" > /etc/ssh/sshd_config.d/60-cloudimg-settings.conf

5.重启VPS:

reboot

▶ 第四步: 同【方法三】的 第六步 一样,重启服务器,修改 SSH 的登录方式

等待片刻待实例重启完成后,在FinalShell连接工具里编辑这个实例登陆方式为密码登陆,用户名为root。到此开始以后你登陆就会一直是root权限登陆模式了

学会了前面三种方法,第四种方法也很好理解了。

结语

综合了大家的方法,写出这篇教程。

目的也很简单:

一是 给自己留个备查簿,方便随时拿来用,

二是 给有需要的朋友,加个关注和收藏,需要用的时候能找得到。

0

—— 评论区 ——

博主关闭了当前页面的评论