Cách .ssh / config để chỉ định phân bổ giả và thực thi lệnh


13

Có cách nào để chỉ định, trong .ssh/config, một lệnh như:

ssh -t remote-host "screen -dR screen_name"

vì vậy tôi có thể dễ dàng truy cập screenphiên từ xa với ssh remote-host?

Ngay bây giờ tôi đã giải quyết vấn đề này bằng cách sử dụng tập lệnh tùy chỉnh:

$ cat ~/bin/sssh 
#!/bin/sh

/usr/bin/ssh -t $1 "screen -dR ab"

~/binđứng đầu tại $PATH, nhưng nó không linh hoạt và xấu xí.

Ngoài ra, tôi muốn tìm cách triển khai tự động hoàn thành máy chủ cho tập lệnh tùy chỉnh của mình.


Tôi sẽ thay thế $1bằng $@. Sau đó, bạn có thể thêm nhiều tùy chọn, không chỉ tên máy chủ. Để hoàn thành, hãy thử thực hiện . /usr/share/bash-completion/completions/ssh, tiếp theocomplete -F _ssh sssh
Alex Stragies

Câu trả lời:


17

Để phân bổ tty như bạn muốn với -ttùy chọn, hãy đặt RequestTTY forcelàm mục nhập trong tệp cấu hình ssh (thường là trong ~/.ssh/config). Để luôn thực thi lệnh trên máy chủ sau khi bạn đã kết nối, hãy RemoteCommand COMMANDnhập mục nhập, đây COMMANDlà lệnh bạn muốn chạy khi kết nối. Đối với các tùy chọn khác, kiểm tra man ssh_config.

Host remote-host
    Hostname my.server.com
    User imauser
    IdentityFile /path/to/identity_file
    RequestTTY force
    RemoteCommand screen -dR screen_name

7

Sử dụng vũ lực, Luke!

RequestTTY forcetrong ~/.ssh/configmáy chủ của bạn cho mong muốn.


1

Tôi cho rằng đây là cách linh hoạt nhất. Một tập lệnh cho phép bạn thiết lập các tham số, thêm các điều kiện, thay đổi lệnh khi cần, tất cả dựa trên các đầu vào.

Có nhiều cách để "buộc" lệnh authorized_keys. Nhưng tôi không biết cách nào để buộc phân bổ tty ngoại trừ từ dòng lệnh hoặc buộc một lệnh trên máy chủ từ xa từ các tệp cấu hình phía cục bộ.

Bản thân tôi, tôi có một tập lệnh quét tệp cấu hình, kiểm tra DNS với nhiều tên miền khác nhau và đặt chuỗi tiêu đề của trình mô phỏng đầu cuối. Tôi gọi nó từ màn hình trên hệ thống cục bộ của tôi ( Ctrl-a g).


0

Lưu ý: RemoteCommandbắt đầu làm việc với OpenSSH 7.6 . Trong phiên bản trước (tức là debian 9,9), máy khách ssh sẽ ngừng hoạt động bình thường (ít nhất là với git pull).

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.