Điểm:0

Sao chép tệp vào thư mục được bảo vệ trên máy chủ từ xa

lá cờ ru

Tôi đang làm việc trên một tập lệnh cần sao chép một số tệp từ máy cục bộ sang thư mục trên máy chủ từ xa. Vấn đề tôi đang gặp phải là thư mục (/etc/init.d) do root sở hữu nên tôi nhận được ngoại lệ về quyền nếu tôi cố sao chép các tệp vào đó. Điều đó có nghĩa là tôi không thể sử dụng scp mà không đăng nhập với quyền root.

Giải pháp gần nhất tôi tìm thấy cho đến nay là câu trả lời này: https://askubuntu.com/a/872537/798391 . Thật không may, câu trả lời như đã đưa ra không thực sự hiệu quả và dường như không có gợi ý nào được đưa ra trong các nhận xét để khắc phục nó. nếu tôi chạy

mèo myscript.sh | ssh foo@myserver "sudo tee -a /etc/init.d/myscript.sh"

tôi nhận được lỗi

sudo: không có tty hiện tại và không có chương trình askpass nào được chỉ định

Một trong những ý kiến ​​​​đề xuất thêm -t vào lệnh ssh

mèo myscript.sh | ssh -t foo@myserver "sudo tee -a /etc/init.d/myscript.sh"

nhưng điều đó dẫn đến lỗi

Thiết bị đầu cuối giả sẽ không được phân bổ vì stdin không phải là thiết bị đầu cuối.

Một tùy chọn được đề xuất khác là sử dụng đối số -S của sudo

mèo myscript.sh | ssh foo@myserver "sudo -S tee -a /etc/init.d/myscript.sh"

Điều đó ít nhất cũng nhắc nhập mật khẩu, nhưng nó sẽ hết thời gian chờ và hỏi lại trước khi có thể nhập hoàn toàn mật khẩu.

Tại thời điểm này tôi không có ý tưởng.Có cách nào để lệnh này hoạt động không? Có giải pháp thay thế nào tốt hơn để sao chép tệp vào một vị trí từ xa được bảo vệ không?

Điểm:0
lá cờ cn
raj

Có thể có nhiều phương pháp khác nhau để đạt được những gì bạn muốn, nó phụ thuộc vào cấu hình chi tiết trên cả hai máy.

Phương pháp đơn giản nhất sẽ là (nếu có thể) định cấu hình xác thực ssh dựa trên khóa để người dùng cục bộ của bạn có thể ssh với quyền root cho máy từ xa.

Một phương pháp khác là sử dụng chờ đợi để viết một tập lệnh ghi nhật ký tương tác qua ssh vào máy từ xa, phải không sudo -i (và nhập mật khẩu thích hợp) rồi sao chép tệp đang thực hiện scp theo hướng ngược lại (tức là. scp được thực thi trên máy chủ từ xa đối với máy cục bộ của bạn - nó phải có máy chủ ssh đang hoạt động).

Giải pháp có lẽ gần nhất với những gì bạn đã thử ban đầu là như sau:

  1. chuẩn bị một kịch bản (hãy gọi nó là /tmp/mật khẩu) với nội dung như sau:

     #!/bin/sh
     tiếng vang mật khẩu
    

    ở đâu mật khẩu mở khóa là mật khẩu thực tế cho người dùng foo trên máy chủ từ xa.

  2. chmod 700/tmp/mật khẩu để tệp có thể thực thi được và không ai ngoại trừ chủ sở hữu có thể truy cập tệp

  3. sao chép tệp (bảo toàn quyền) vào máy chủ từ xa với scp -p /tmp/mật khẩu foo@myserver:/tmp

  4. sử dụng lệnh sau:

     mèo myscript.sh | ssh foo@myserver "SUDO_ASKPASS=/tmp/password sudo -A tee -a /etc/init.d/myscript.sh"
    
lá cờ ru
Tôi đã thiết lập xác thực dựa trên khóa, ít nhất là tôi nghĩ là có. Tôi không hoàn toàn chắc chắn điều đó sẽ giúp ích như thế nào vì tôi vẫn cần chạy lệnh sao chép với quyền nâng cao trên máy chủ từ xa và do đó vẫn cần cung cấp mật khẩu.
raj avatar
lá cờ cn
raj
@pbuchheit Bạn có thể làm `ssh root@myserver` không? Ý tôi là thiết lập xác thực khóa để bạn có thể thực hiện được.
lá cờ ru
Không. Tôi thực sự không muốn đăng nhập với quyền root.
raj avatar
lá cờ cn
raj
@pbuchheit Vì vậy, hãy thử giải pháp tôi đã mô tả.
lá cờ ru
giải pháp nào? Sử dụng mong đợi là không nên; các thành viên khác trong nhóm cần có khả năng chạy tập lệnh này mà không cần thêm thư viện. Việc thêm một tệp chứa mật khẩu vào máy chủ từ xa có vẻ thừa. Tôi đã thiết lập xác thực khóa.
raj avatar
lá cờ cn
raj
@pbuchheit Có thể thử điều này trước khi nhận xét rằng "có vẻ thừa". Tệp này được sử dụng để cung cấp mật khẩu cho sudo (không phải ssh) để nó không yêu cầu bạn cung cấp. Bạn đã hỏi "Có cách nào để lệnh này hoạt động không?". Tôi đã đưa cho bạn câu trả lời **đã kiểm tra**, nhưng bạn nói rằng bạn không muốn thử - vậy thì đó là vấn đề của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.