2009-04-07 25 views
7

Tôi muốn giữ lệnh ssh ẩn/ngụy trang từ người dùng khác.Ẩn đối số từ ps

Ví dụ:

ssh [email protected] -i /my/private/key 

Đáng tiếc là điều này sẽ đưa ra trong danh sách ps và những người dùng khác sẽ có thể xem các tập tin khóa bí mật mà tôi đang sử dụng. Có cách nào để giái quyết vấn đề này không?

(Họ đang đăng nhập như là người dùng giống như tôi)

+3

Observation: bạn không nên chia sẻ cùng một ID đăng nhập nếu bạn không muốn chia sẻ cùng một bí mật. ID người dùng dành cho các cá nhân, không dành cho các nhóm. –

Trả lời

12

Nếu họ đăng nhập với bạn, về cơ bản bạn có thể làm để ngăn họ học thông tin đó. Nếu bạn đang sử dụng Linux, họ sẽ có quyền truy cập vào các mục/proc của bạn và có thể dễ dàng tìm hiểu thông tin này.

Họ cũng có thể:

  • xóa tất cả các file của bạn.
  • gửi thư dưới tên của bạn để xúc phạm CEO của công ty bạn.
  • truy cập tất cả các tệp và lịch sử dòng lệnh của bạn, nếu có.
  • vô số thứ khác.

Đây không phải là cách hữu hiệu để tự bảo vệ bản thân. Trước tiên, bạn cần phân loại vấn đề người dùng giống hệt nhau.

0

Không cho phép họ biết vị trí của các tập tin khóa riêng không phải là nhiều tính năng bảo mật - họ truy cập thực sự không nên đã đọc dù sao đi chăng nữa cũng không quan trọng nếu họ biết nó ở đâu hay không. Nói chung, nếu bạn có quyền kiểm soát nguồn của ứng dụng, bạn có thể ghi đè lên vị trí bộ nhớ đang nắm giữ các đối số dòng lệnh, vì vậy bạn có thể sửa đổi chúng thành một cái gì đó "vô hại".

3

Trên Linux, bạn có thể làm một cái gì đó giống như

strncpy(argv[0], "mynewcmdlinehere", strlen(argv[0])); 

Không biết về Unices khác, xin lỗi.

+0

Không biết về điều này. Quá dễ. Cảm ơn bạn! –

+0

Tôi đã thử trên linux nhưng ps vẫn hiển thị 'a.out'. Tôi đã bỏ lỡ một cái gì đó? – hek2mgl

3

Ẩn dòng lệnh sẽ yêu cầu một tập lệnh, vì vậy nó là Catch-22, bởi vì các ppl khác có cùng một người dùng sẽ có quyền truy cập vào tập lệnh đó.

Giải pháp khá đơn giản: Sử dụng khóa bằng cụm từ mật khẩu.(howto)

+3

Ngay cả khi sử dụng khóa có cụm từ mật khẩu, một quy trình khác đang chạy với cùng một người dùng có thể đọc cụm từ mật khẩu và/hoặc giải mã của quy trình ssh-agent hoặc ssh của bạn. Không có bảo mật chống lại các tiến trình đang chạy với cùng một uid. – ephemient

0

Từ phía sau của bộ nhớ của tôi, tôi nhớ làm somthing tương tự một thời gian dài trước

Đầu tiên, tạo một kịch bản shell, được gọi là ps chạy ps và sẽ grep tất cả các dòng trừ chứa ssh (hoặc một cái gì đó phù hợp) và đặt địa điểm này ở một vị trí an toàn (~/bin/ps)

Thêm ~/bin/vào đường dẫn của bạn làm vị trí đầu tiên để tìm kiếm.

tất nhiên, họ vẫn có thể sử dụng/usr/bin/ps (hoặc bất cứ nơi nào vị trí của nó là) một cách rõ ràng

Là một caveat, đây là tất cả từ bộ nhớ và tôi không có một hộp Unix để kiểm tra nó trên ... xin lỗi

+0

Điều này không có gì để ngăn chặn "người dùng" khác (đang sử dụng cùng một uid, vì lý do không rõ) từ việc sử dụng "ps" gốc trực tiếp - cũng không thể ngăn chặn được. – ephemient

2

Ngay cả khi bạn ẩn dòng lệnh, người dùng có thể chạy lsof để xem tất cả các tệp mà quy trình ssh của bạn đã mở - bao gồm tệp danh tính.Tuy nhiên, nếu che khuất dòng lệnh thực sự là mục tiêu cuối cùng, bạn có thể bắt đầu một tác nhân chủ chốt, tải danh tính vào tác nhân, và sau đó ssh sử dụng tác nhân đó. Đường dẫn đến socket mà tác nhân sử dụng được điều khiển bởi một biến môi trường.

Điều này không có nghĩa là bảo mật. Pax là đúng - vấn đề "đăng nhập như cùng một người dùng" là những gì thực sự cần được giải quyết ở đây. Ngừng sử dụng tài khoản của người khác. ;)

-1

Bạn có thể thiết lập khóa riêng của bạn thông qua tập tin ~/.ssh/config của bạn được bảo đảm bằng 0700. Dưới đây là ví dụ về ~/.ssh/config:

Host myhost.com 
    IdentityFile /home/maxcohan/.ssh/github.com.id_rsa 
+1

anh ấy nói mọi người đều sử dụng cùng một tài khoản người dùng. chmod sẽ không hoạt động. –

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