2014-02-13 23 views
2

我是這個AWS的新手。重新啓動EC2並以根用戶身份登錄

我發起了一個EC2實例和使用Cygwin的做的東西,一切工作我推出了EC2的機器,我能:

  1. 登錄使用使用ssh和PEM文件即鍵值對名稱的文件命令爲: SSH -i pem.file根@ IP,(這個工程,我被登錄爲root用戶)
  2. 使用sudo -i
  3. 安裝任何東西獲取root權限,安裝服務器像Apache,tomcat和所有那

但是,一旦我停止實例並再次啓動它,它不允許我以root身份登錄?

首先,每當我停止並啓動機器時,IP就會發生變化。

其次,爲什麼一旦機器停止後再次啓動命令: SSH -i pem.file根@ IP顯示以下信息:

enter image description here

請一些啓發。

+2

每次關機並重新啓動實例時,EC2上的IP地址都會更改。這是設計。 – Rico

+2

你可以請你說出讓你這麼做的人嗎? –

回答

8

這是因爲您用來啓動實例的AMI不允許通過SSH進行root用戶登錄。你啓動了什麼樣的Linux實例?

您可以更改/etc/ssh/sshd_config,選項爲PermitRootLogin yes(確保重新啓動sshd服務)。但是,要使密鑰文件.pem正常工作,您必須將公鑰設置爲root。快速的方法是將/home/cloud-user/.ssh/authorized_keys複製到/root/.ssh/authorized_keys但是,這不是一個推薦的做法。

您收到的Please login as the user "cloud-user" rather than the user "root".消息是因爲/root/.ssh/authorized_keys中的command選項。

至於實例的公開IP,那是因爲你的實例是所謂的EC2 Classic。如果您希望公有IP持續存在,則必須在具有Internet網關的自定義VPC中啓動該實例,併爲其添加彈性IP。 This是一個很好的指南。

+0

那麼爲什麼第一次根訪問正在工作 –

+0

可能特定於您使用的AMI,這就是爲什麼我問你啓動了哪種Linux實例 – alkar

+0

Centos 6.2版本和64位 –

0

每個普通的AMI結構「雲用戶」應該是一個NOPASSWD sudoer,這意味着您可以在需要的任何命令中加入「sudo」。

我知道這並不是在技術上回答你的問題,但你沒有指定爲什麼需要實際的root ssh。您可能需要修改設計/工作流程,以便不需要實際的「根」使用。

另外請確保您有一個EBS支持的實例。如果您使用實例(臨時)存儲,我相信任何文件系統修改在重新引導時都會丟失。

1

您是否安裝了cloud-init RPM?CentOS AMI的cloud-init RPM創建名爲cloud-user的用戶,但沒有必要的sudo權限。所以在重新啓動後,沒有辦法sudo或做任何有意義的事情。

要解決此問題,推出了香草CentOS的情況下,安裝cloud-init RPM,但重啓,修改/etc/cloud/cloud.cfg授予爲cloud-user sudo的特權。

default_user: 
    name: cloud-user 
    gecos: Cloud user 
    groups: [wheel, adm] 
    sudo: ["ALL=(ALL) NOPASSWD:ALL"] 
    shell: /bin/bash 

cloud-usersudo特權現在將生存重新啓動。或者,您可以保留根訪問權限,如顯示here

1

每當我停止並啓動機器時,IP都會發生變化。

這是一個正常行爲,具有自動分配的IP的。一旦它沒有被使用,你就會失去知識產權,然後亞馬遜會爲你分配一個新的知識產權。

爲了保持你的IP,你需要保留一個彈性IPEIP的簡稱),並將其分配給您的實例。此IP將而不是與您的實例分離。即使銷燬實例,它仍將保留在您的帳戶中。 EIP是你的,直到你釋放它。每個運行實例的第一個EIP是免費的;但是,如果實例沒有運行,則每小時空閒時間支付一筆象徵性費用(即停止實例或終止實例)。

EIP爲您保留,直到您將其發佈到亞馬遜。

其次,爲什麼一旦機器停止後再次啓動命令: SSH -i pem.file根@ IP顯示以下信息:

PermitRootLogin 

/etc/ssh/sshd_config 

會解決它;那麼您還需要將公鑰添加到位於根用戶的

$HOME/.ssd 

中的authorized_hosts文件。

這篇文章介紹瞭如何做到這一點: https://www.cloudinsidr.com/content/how-to-rsync-files-and-directories-between-remote-hosts/

我發起了一個EC2實例和使用Cygwin的做東西

如果我可以提一個建議:不要使用Cygwin 。使用PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

相關問題