2011-07-09 105 views
23

過去幾天這個問題一直困擾着我。如何在Amazon EC2實例中啓用根SSH訪問?

我一直在設置亞馬遜EC2上的LAMP服務器。主要問題是我正在爲需要大量高端處理的客戶端編寫應用程序,而Amazon EC2似乎是一個不錯的選擇。

最初我從一個基本沒有任何東西的AMI開始。我嘗試使用root訪問權限登錄到SSH(使用WinSCP),並被告知使用ec2用戶。

我嘗試過使用ec2-user,並且能夠登錄。但是,我仍然沒有root權限並且無法安裝apache。我做了一些原因,並且發現了有關「sudo」命令的內容,幾乎所有關於此問題的文章都表示要麼使用root訪問權限,要麼登錄到ec2用戶和用戶sudo。

我已經嘗試了不同的AMI,其中已經安裝了LAMP。我能夠得到它的工作,建立一個數據庫,並開始運行一個網站。不過,我仍然需要安裝一些擴展。也就是說,我正在嘗試爲此應用程序使用的API需要安裝SOAP。

這裏是我的困境:

/$ whereis soap 
soap: 
/$ whereis yum 
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz 
/$ yum install php-soap 
Loaded plugins: fastestmirror, priorities, security 
You need to be root to perform this command. 
/$ sudo yum install php-soap 
sudo: sorry, you must have a tty to run sudo 

Command 'sudo yum install php-soap' failed with return code 1 and error message sudo: sorry, you must have a tty to run sudo 

我不能用yum,因爲我沒有root權限,每當我登錄到根,要麼告訴我使用EC2用戶或提供密碼我沒有。另一種選擇是使用sudo使ec2用戶像root一樣行事,但我總是得到錯誤'對不起,你必須有一個tty來運行sudo'。我在線上運行了這個錯誤消息,似乎我需要向sudoers添加一個用戶......這是我無法訪問root的功能。

這個完全相同的問題困擾着我在兩個單獨的AMI上。在第一次,我剛剛收到一條消息,說我必須以ec2用戶身份登錄(並且我必須有一個tty才能運行sudo),而第二個(使用LAMP安裝)要求我輸入root密碼和用戶我得到了相同的sudo錯誤。

這裏是AMI的我的ID的使用:

ami-8c1fece5 
ami-6ae81503 

我也試過第三AMI後也已經安裝了燈......我甚至不能進入這一個都沒有。

我沒有下載我的SSH密鑰,並使用PuttyGen將其轉換爲ppk文件。我可以以ec2用戶的身份成功登錄,但我無法在任何地方獲得root訪問權限。

我一直在尋找這方面的幫助,但是我讀過的每篇文章都假設用戶有可用的根訪問權限,或者在ec2用戶上有sudo可用。我也沒有。僅僅是我需要一個新的形象?

任何幫助將不勝感激......

+0

可以運行'su'? – Blender

+0

真的,這不是一個編程問題,或與stackoverflow.com ......應該被移動到http://unix.stackexchange.com/ - 丹·格羅斯曼回答了你的問題,但是... – sdolgy

+0

我想這是相關編程,所以它會計... – JaidynReiman

回答

5

使用一個真正的SSH客戶端一樣PuTTY,不WinSCP賦予,文件傳輸客戶端。你所有的問題都會消失。

+1

謝謝...我對命令行提示和SSH很陌生,所以我只是假設WinSCP的工作正常......我現在正在工作。 – JaidynReiman

+0

+1唯一使它對我工作的是從PuTTY運行sudo而不是WinSCP - 感謝一百萬,使我的一天:) – 2013-11-07 01:35:54

+1

這...實際上不回答「*如何啓用根SSH訪問在一個亞馬遜EC2實例?*「問題... –

53

我只是想

$ sudo su 

您AMIS瞧之一!我是根...

玩得開心!

[[email protected] ~]$ sudo su 
[[email protected] ec2-user]# 
+0

感謝您的幫助,但我以前做過,它仍然無法正常工作。問題是我試圖使用的程序(我只是認爲WinSCP的命令提示符會和其他任何東西一樣工作,但顯然不是......) – JaidynReiman

+0

爲我工作。在AWS亞馬遜Linux中已經使用putty – nitigyan

1

(錯誤報告?)這是我的日誌上EC2實例,有時sudo su不起作用。我必須註銷並再次ssh才能正常工作。

[[email protected] ~]$ su root 
    Password: 
    su: incorrect password 
    [[email protected] ~]$ exit 
    logout 
    Connection to ec2-50XXXX.compute-1.amazonaws.com closed. 
    ssh -i automata.pem [email protected] 
    whereis yum 
    yum: /usr/bin/yum /etc/yum.conf /etc/yum /usr/share/man/man8/yum.8.gz 
    [[email protected] ~]$ sudo su 
    [[email protected] ec2-user]# 
+0

我不確定。我甚至沒有再使用Amazon AWS。我遇到的真正問題是我正在使用錯誤的程序,但是。 – JaidynReiman

1

文件:

的/ etc/sudoers文件

有一行

默認requiretty

談到這一點可能會使錯誤消失。

我會先了解爲什麼有些在百勝 命令也不再有一個tty。

更改與安全相關的文件中像 的/ etc/sudoers文件是潛在的危險安靜。

1

你需要編輯sshd_config文件,以允許基於密碼的訪問 而你需要一個密碼添加到你的root用戶。 簡單隻要按照步驟 - 須藤passwd的根 須藤納米-w的/ etc/SSH/sshd_config中 取消註釋/添加以下行PasswordAuthentication yes

3

對於Debian或Ubuntu EC2:通過膩子 1.獲得root權限

sudo su 
sudo passwd root 
到油灰
  • 登錄作爲根

  • 編輯/ etc/ssh/sshd_config文件和註釋噸他的最後HostKey語句或一個類似於上一個在下面的例子:

    vi /etc/ssh/sshd_config 
    
  • 然後

    # HostKeys for protocol version 2 
        HostKey /etc/ssh/ssh_host_rsa_key 
        HostKey /etc/ssh/ssh_host_dsa_key 
        HostKey /etc/ssh/ssh_host_ecdsa_key 
        #HostKey /etc/ssh/ssh_host_ed00000_key 
    
  • 在同一個文件,將以下內容更改爲如下所示:

    PermitRootLogin yes 
    #PasswordAuthentication no 
    
  • 重新啓動ssh

    service ssh restart 
    
  • 登錄從WinSCP賦予

  • 與密碼根*我建議創建編輯之前的文件sshd_config文件的備份,然後在完成時恢復到原來的。

    +0

    服務應該是'sshd'所以'service sshd restart' – timothymarois