2011-07-09 33 views
23

Sự cố này đã gây phiền toái cho tôi trong vài ngày qua.Làm thế nào tôi có thể kích hoạt quyền truy cập SSH gốc trong một bản sao EC2 của Amazon?

Tôi đã cố gắng thiết lập LAMP Server trên Amazon EC2. Vấn đề chính là tôi đang viết một ứng dụng cho một khách hàng đòi hỏi nhiều xử lý cao cấp, và Amazon EC2 có vẻ như là một lựa chọn tốt.

Ban đầu tôi bắt đầu với một AMI cơ bản mà thực sự không có bất cứ điều gì. Tôi đã thử sử dụng quyền truy cập root để đăng nhập vào SSH (sử dụng WinSCP) và tôi được yêu cầu sử dụng ec2-user.

Tôi đã thử sử dụng người dùng ec2 và tôi có thể đăng nhập. Tuy nhiên, tôi vẫn không có quyền truy cập root và không thể cài đặt apache. Tôi đã làm một số lý do và tôi phát hiện ra về lệnh "sudo", và khá nhiều bài viết tôi đọc về vấn đề này cho biết sử dụng quyền truy cập root hoặc đăng nhập vào ec2-user và user sudo.

Tôi đã thử lại với một AMI khác nơi LAMP đã được cài đặt. Tôi đã có thể làm cho nó hoạt động, thiết lập một cơ sở dữ liệu và bắt đầu chạy một trang web của nó. Tuy nhiên, tôi vẫn cần cài đặt một số tiện ích mở rộng. Cụ thể, một API tôi đang cố gắng sử dụng cho ứng dụng này yêu cầu cài đặt SOAP.

Dưới đây là tiến thoái lưỡng nan của tôi:

/$ 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 

tôi không thể sử dụng yum bởi vì tôi không có quyền truy cập root, và bất cứ khi nào tôi đăng nhập vào rễ nó, hoặc nói với tôi để sử dụng EC2 người dùng hoặc cung cấp một mật khẩu Tôi không có. Cách khác là sử dụng sudo để biến người dùng ec2 thành root, nhưng tôi luôn gặp lỗi 'xin lỗi, bạn phải có một tty để chạy sudo.' Tôi đã chạy thông báo lỗi đó trực tuyến và có vẻ như tôi cần thêm người dùng vào sudoers ... mà tôi không thể thực hiện mà không có quyền truy cập root.

Vấn đề chính xác này đã khiến tôi gặp phải hai AMI riêng biệt. Đầu tiên tôi nhận được một thông báo rằng tôi phải đăng nhập với tư cách người dùng ec2 (và tôi phải có một tty để chạy sudo), trong khi thứ hai (với LAMP được cài đặt) yêu cầu tôi nhập mật khẩu cho root và cho người dùng Tôi gặp lỗi sudo.

Sau đây là các id của tôi của AMI sử dụng:

ami-8c1fece5 
ami-6ae81503 

Tôi cũng đã cố gắng một AMI thứ ba sau đó cũng đã được cài đặt ĐÈN ... Tôi thậm chí không thể nhận được vào một điều đó cả.

Tôi đã tải xuống khóa SSH của mình và sử dụng PuttyGen để chuyển đổi nó thành tệp ppk. Tôi có thể đăng nhập thành công với tư cách là người dùng ec2, nhưng tôi không thể truy cập root ở bất cứ đâu.

Tôi đã xem xét một chút để được trợ giúp về điều này, nhưng mọi bài viết tôi đã đọc giả định rằng người dùng có quyền truy cập root hoặc có sudo có sẵn trên người dùng ec2. Tôi cũng không có. Chỉ là tôi cần một hình ảnh mới?

Bất kỳ trợ giúp sẽ được đánh giá cao ...

+0

Bạn có thể chạy 'su' không? – Blender

+0

thực sự, đây không phải là vấn đề lập trình hoặc liên quan đến stackoverflow.com ... nên được chuyển sang http://unix.stackexchange.com/ - Dan Grossman đã trả lời câu hỏi của bạn tuy nhiên ... – sdolgy

+0

Tôi đã tìm ra nó có liên quan để lập trình để nó sẽ đếm ... – JaidynReiman

Trả lời

5

Sử dụng ứng dụng SSH thực như PuTTY, chứ không phải WinSCP, ứng dụng truyền tệp. Tất cả các vấn đề của bạn sẽ biến mất.

+1

Cảm ơn ... Tôi rất mới với lời nhắc dòng lệnh và SSH, vì vậy tôi chỉ giả định rằng WinSCP sẽ hoạt động tốt ... Tôi đã làm việc ngay bây giờ. – JaidynReiman

+0

+1 điều duy nhất làm cho nó hoạt động cho tôi đang chạy sudo từ PuTTY chứ không phải WinSCP - Cảm ơn một triệu, đã làm ngày của tôi :) –

+1

điều này ... thực sự không trả lời "* Làm thế nào tôi có thể kích hoạt quyền truy cập SSH gốc trong Một câu hỏi của Amazon EC2? * "Question ... –

53

Tôi chỉ cố gắng

$ sudo su 

trên một trong amis và thì đấy bạn! Tôi là người gốc ...

Hãy vui vẻ!

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

Cảm ơn sự giúp đỡ, nhưng tôi đã làm điều này trước và nó vẫn không hoạt động.Vấn đề là chương trình tôi đã cố gắng sử dụng (tôi chỉ nghĩ rằng dấu nhắc lệnh của WinSCP sẽ làm việc giống như bất cứ điều gì khác, nhưng dường như không ...) – JaidynReiman

+0

Làm việc cho tôi. đã sử dụng putty đã có trong AWS Amazon Linux – nitigyan

1

(Báo cáo lỗi?) Đây là nhật ký của tôi về phiên bản ec2, đôi khi sudo su không hoạt động. Tôi phải đăng xuất và ssh lại để nó hoạt động.

[[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

Tôi không chắc chắn. Tôi thậm chí không sử dụng Amazon AWS nữa. Vấn đề thực sự của tôi là tôi đã sử dụng sai chương trình. – JaidynReiman

1

Các tập tin:

/etc/sudoers

có một dòng

Defaults requiretty

Bình luận này ra có thể sẽ làm cho các lỗi biến mất.

Trước tiên, tôi sẽ cố gắng hiểu tại sao một số thứ trong lệnh yum của bạn không còn có tty nữa.

Thay đổi tệp liên quan đến bảo mật như /etc/sudoers có khả năng gây nguy hiểm.

1

Bạn cần chỉnh sửa tệp sshd_config để cho phép truy cập dựa trên mật khẩu Và bạn cần thêm mật khẩu cho người dùng root của mình. Đơn giản chỉ cần làm theo các steps- sudo passwd root sudo nano -w/etc/ssh/sshd_config Bỏ ghi chú/Thêm dòng sau PasswordAuthentication yes

3

Đối với Debian hoặc Ubuntu EC2: quyền root 1. Nhận qua putty

sudo su 
sudo passwd root 
  1. Đăng nhập để putty như là người chủ

  2. chỉnh sửa/etc/ssh/sshd_config tập tin của bạn và nhận xét ra t ông tuyên bố HostKey cuối cùng hoặc một tương tự như người cuối cùng trong ví dụ dưới đây:

    vi /etc/ssh/sshd_config 
    

Sau đó

# 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 
  1. Trong cùng một tập tin, thay đổi những điều sau đây để trông giống như bên dưới:

    PermitRootLogin yes 
    #PasswordAuthentication no 
    
  2. Khởi động lại ssh

    service ssh restart 
    
  3. Đăng nhập với quyền root với mật khẩu từ WinSCP

* Tôi khuyên bạn nên tạo một bản sao lưu của file sshd_config trước khi chỉnh sửa và sau đó quay trở lại ban đầu khi thực hiện xong.

+0

Dịch vụ phải là 'sshd' để' dịch vụ sshd khởi động lại' – timothymarois

Các vấn đề liên quan