个性化阅读
专注于IT技术分析

如何在AWS Ubuntu 16.04实例上以root身份允许SSH和SFTP访问

本文概述

作为使用多个不在AWS中的服务器的人, root是默认用户, 可以操纵服务器上的所有内容。但是, 在Amazon Web Services实例中, 当你尝试以用户” root”的身份访问基于Ubuntu的实例时, 尝试连接时会发现以下消息作为响应(这显然会阻止以root身份进行连接):

Please login as the user "ubuntu" rather than the user "root".

基本上, 这样做是防止你以root用户身份访问, 并迫使你先以ubuntu用户身份登录, 然后再使用sudo su来获得root用户访问权限。对于大多数管理员来说, 这有时不是问题, 因为这是ubuntu安全模型, 但是这可能是一个大问题, 例如, 当你尝试通过SFTP访问服务器时, 你将无法访问/删除/由于权限不足, 因此无法重命名或移动文件/目录, 因为你不是以root用户身份登录, 而是以ubuntu身份登录。

根据许多观点和Ubuntu安全模型, 通过SSH或SFTP以root用户身份登录很不好, 因为它破坏了此操作系统上已有的安全模型。每个应用程序都应以非管理权限运行, 因此你必须提升其特权才能修改基础系统(例如目录等)。如果你知道自己在做什么, 为什么要这样做, 例如从基于Plesk的服务器迁移, 在需要root访问的情况下, 我们将在本文中向你展示如何在基于Ubuntu的AWS EC实例中以SSH或SFTP身份以root身份进行访问。

1.使用SSH访问你的服务器

第一步, 像平常一样访问ubuntu服务器, 请访问ubuntu@publicdns-host-address.com, 并使用你喜欢的工具(Putty)的私钥。然后在CLI上, 使用以下命令为ubuntu用户获得root特权:

sudo su

使用此命令, 你将以root用户身份登录。

2.编辑authorized_keys文件

现在你已经是root用户, 你需要专门修改此用户的” authorized_keys”。你可以使用nano在终端上编辑此文件:

nano /root/.ssh/authorized_keys

这将打开该文件, 该文件可能仅包含一个authorized_key(即在创建实例时亚马逊为你提供的KeyPair)和文件开头的一些文本:

no-port-forwarding, no-agent-forwarding, no-X11-forwarding, command="
echo 'Please login as the user "ubuntu" rather than the user "root".';
echo;sleep 10"
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe AmazonOriginalKeyPairName

这恰好是授权密钥的行, 它阻止你从任何工具作为root用户访问:

no-port-forwarding, no-agent-forwarding, no-X11-forwarding, command="
echo 'Please login as the user "ubuntu" rather than the user "root".';
echo;sleep 10"

要允许以root用户身份访问, 请仅从root帐户的authorized_keys文件中删除授权密钥之前的文本, 然后保存更改。保存更改后, 你的authorized_keys文件将仅具有授权的ssh密钥, 在我们的情况下只有一个:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe
AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe AmazonOriginalKeyPairName

现在, 尝试再次以root和voila身份登录到你的EC实例, 通过SSH或SFTP进行root访问, 这意味着你不再有目录权限问题。

欢迎来到黑暗面的根访问

记得

以root用户身份登录后, 你可以执行所有操作, 因此系统不会询问你!你是否要格式化某些磁盘或从任何地方删除所有目录和数据?好的, 只需运行命令即可。你是根, 知道自己在做什么。所以要小心

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在AWS Ubuntu 16.04实例上以root身份允许SSH和SFTP访问

评论 抢沙发

评论前必须登录!