ssh sudo không tương tác nhắc nhở mật khẩu bằng văn bản thuần túy


9

Tôi đang chạy một số lệnh ssh không tương tác. Xác thực ssh được xử lý tốt thông qua tác nhân ssh, nhưng nếu tôi chạy một lệnh yêu cầu sudo thì dấu nhắc mật khẩu trong thiết bị đầu cuối của tôi là văn bản thuần túy. Ví dụ:

ssh remotemachine "sudo -u www mkdir -p /path/to/new/folder"

sẽ nhắc tôi nhập mật khẩu bằng văn bản thuần túy. Có ai biết làm thế nào tôi có thể khiến nó sử dụng dấu nhắc bảo mật thông thường hoặc tôi có thể chuyển mật khẩu qua một công tắc không? (vì sau đó tôi có thể thiết lập một dấu nhắc an toàn ở bên này trước khi tôi gửi lệnh)

Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Câu trả lời:


13

Sử dụng ssh -t:

người đàn ông

-t   Force pseudo-tty allocation. This can be used to execute arbitrary 
     screen-based programs on a remote machine, which can be very useful, 
     e.g. when implementing menu services. Multiple -t options force tty 
     allocation, even if ssh has no local tty.

Vì vậy, lệnh của bạn sẽ là

ssh remotemachine -t "sudo -u www mkdir -p /path/to/new/folder"

Nếu bạn không muốn nhập mật khẩu, bạn có thể (nếu bạn được phép) sửa đổi sudoersbằng cách sử dụng lệnh visudo.

Thêm tham số NOPASSWD:, ví dụ

username ALL=(ALL) NOPASSWD: /bin/mkdir

Nếu bạn không thể chỉnh sửa / etc / sudoers, bạn có thể sử dụng sudo -S:

người đàn ông sudo

-S      The -S (stdin) option causes sudo to read the password from
        the standard input instead of the terminal device.  The
        password must be followed by a newline character.

Với điều đó, lệnh sẽ là

echo "your_password" | ssh remotemachine -t \
     "sudo -S -u www mkdir -p /path/to/new/folder"

Hãy nhớ rằng điều này sẽ thêm mật khẩu của bạn vào lịch sử lệnh của trình bao của bạn (với bash, đó sẽ là ~/.bash_historytệp).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.