Chạy một lệnh trên máy chủ từ xa với SSH tương tác (có điều kiện)


9

Tôi muốn có thể tự động chạy một lệnh trên một máy chủ từ xa mỗi lần tôi đăng nhập vào máy chủ đó, nhưng trong phiên SSH tương tác hiện tại.

Cái gì đó như

ssh user@remotehost [run do.sh]

trong do.shđó một vài nhiệm vụ vệ sinh và sau đó gắn lại vào một screenphiên (hiện tại tôi chạy do.shthủ công sau khi đăng nhập vào máy chủ).

Tôi không muốn thêm nó vào .bashrcvì tôi đăng nhập vào máy chủ này từ các máy khác và tôi không muốn do.shchạy khi tôi đăng nhập từ đó vì vậy tôi cần nó là tùy chọn.


1
Tại sao bạn không chạy đơn giản ssh user@remotehost /path/to/do.sh? Nếu nó hoạt động, bạn thậm chí có thể đặt bí danh cho nó trong .ssh / config hoặc personnal .bashrc
Coren

Vì vậy, bạn muốn chạy "do.sh" khi bạn đăng nhập vào remotehost từ một nơi nào đó, nhưng không phải khi bạn đăng nhập vào remotehost từ một số người khác? Mà host để bạn kết nối từ nên kích hoạt "do.sh", và những người khác mà không nên?
Mat

Có, tôi muốn chạy nó đôi khi, nhưng không phải lúc nào cũng được, lý do là tôi có một phím tắt từ trình khởi chạy trên máy Mac mang lại cho tôi thứ tôi muốn hầu hết thời gian. Tôi nhấn một phím tắt và tôi muốn ssh vào hộp và sau đó gắn lại vào một phiên màn hình, nhưng tôi không muốn làm điều đó nếu tôi sử dụng một thiết bị đầu cuối thông thường như "ssh user @ host". Giải pháp được đề cập dưới đây của Patkos thực hiện chính xác những gì tôi cần.
Jim Farkas

Câu trả lời:


15

Bạn có thể thử một cái gì đó như thế này:

ssh server -t "do.sh; bash --login"

như được đề xuất ở đây: /server/167416/change-directory-automatically-on-ssh-login

Hoặc bạn có thể thử sử dụng tùy chọn 'LocalCommand' trong sshd_conf (hoặc ~ / .ssh / config) như được mô tả trong trang chính thức: http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1


1
Cám ơn rất nhiều!! máy chủ ssh -t "/home/user/do.sh; bash --login" đã làm việc cho tôi. köszönöm szépen!
Jim Farkas

1
Szivesen (Bạn được chào đón)
Patkos Csaba

@PatkosCsaba Vui lòng tránh các ngôn ngữ khác ngoài tiếng Anh tại đây. Điều này cũng áp dụng cho ý kiến.
LinuxSecurityFreak

3

Một phần của câu đố: giả sử OpenSSH, sshmáy khách sẽ đặt biến môi trường sau:

SSH_CONNECTION Xác định các đầu máy khách và máy chủ của kết nối. Biến chứa bốn giá trị được phân tách bằng dấu cách: địa chỉ IP của máy khách, số cổng máy khách, địa chỉ IP của máy chủ và số cổng máy chủ.

Vì vậy, bạn có thể sử dụng thông tin này để tìm ra kết nối của bạn đến từ đâu .

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.