Lệnh sftp hỗ trợ tùy chọn hệ thống con (-s) cho phép người dùng từ xa chọn máy chủ sftp từ xa thực thi và tùy chọn nâng cấp lên sudo trong quy trình như vậy;
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
Lệnh này trì hoãn các tùy chọn máy khách ssh trong ~ / .ssh / config cho phép sử dụng pubkey và tùy chỉnh cài đặt cổng và người dùng.
Tuy nhiên subsystem
dường như là cụ thể sftp, và do đó nó không được đặt trong tệp cấu hình và có vẻ như nó phải được đặt làm tùy chọn dòng lệnh cho sftp.
Tuy nhiên, một số công cụ bao bọc lời gọi sftp để không thể đặt tùy chọn hệ thống con và do đó bị kẹt với quyền truy cập của người dùng.
Có một số tệp tùy chọn cấu hình mà tôi có thể sử dụng để đặt tệp này cho openssh sftp không?
Có một số tệp cấu hình để thực hiện cách gnome nautilus gọi sftp để tích hợp trình quản lý tệp của nó?
Cập nhật giải pháp hacky nhưng hoạt động có thể là ...
Vì vậy, hóa ra là không có tệp cấu hình rõ ràng mà sftp sẽ sử dụng cho các tùy chọn nên cuối cùng tôi đã sửa đổi tập lệnh trình bao bọc chung để thêm tùy chọn rõ ràng cho các máy chủ đã chọn bằng cách đặt tệp này vào đường dẫn của tôi;
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/sftp
args=("$@")
#the final arg should contain a hostname of the form [user@]host[:path]
case "${args[@]: -1}" in
myserver.com)
exec $OPERATION -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" "$args"
;;
*)
exec $OPERATION "$args"
;;
esac
Tuy nhiên, tùy thuộc vào tệp sudoers của bạn, thông thường để chạy sudo yêu cầu một tty, vì vậy bạn phải chuyển tùy chọn "-t" cho ssh, và đoán xem? không có tùy chọn cấu hình cho lệnh máy khách ssh được ghi lại hoạt động trong các tệp ssh_config hoặc ~ / .ssh / config. haha
Vì vậy, tôi viết một kịch bản trình bao bọc khác để cung cấp rằng ....
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/ssh
args=("$@")
#locating the hostname is not so simple with ssh
exec $OPERATION -tt "$args"
mặc dù, hiện tại tôi đang gặp sự cố khi sử dụng sftp để sử dụng tệp bao bọc ~ / bin / ssh của mình, vì nó dường như được mã hóa cứng thành sftp và được điều khiển bởi một tùy chọn "-S"