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

本文概述

  • 1.使用SSH访问你的服务器
  • 2.编辑authorized_keys文件
作为使用多个不在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身份登录。
【如何在AWS Ubuntu 16.04实例上以root身份允许SSH和SFTP访问】根据许多观点和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 AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqekAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe 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 AAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqekAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqeAAAAB3NzaC1yc2EAAAADAQABAAABAQCPqJ2U4gidqek2U4gidqe AmazonOriginalKeyPairName

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

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

    推荐阅读