Lệnh từ xa trong tập tin cấu hình ssh


12

Tôi muốn đặt ssh_config để sau khi nhập xong, ssh my_hostnametôi sẽ vào thư mục cụ thể. Giống như tôi sẽ gõ cd /folder/another_one/much_much_deeper/.

Làm thế nào tôi có thể đạt được điều đó?

BIÊN TẬP. Nó đã được đánh dấu là bản sao của "Làm thế nào để ssh vào dir ..." nhưng đó không phải là câu hỏi của tôi.

Tôi biết tôi có thể thực hiện bất kỳ lệnh nào bằng cách theo đuôi chúng để ra sshlệnh. Câu hỏi của tôi là về /ssh_configtập tin không phải là lệnh.


Tôi đã làm rõ câu hỏi của mình.
Kazz

Không có gì về điều đó trong man ssh_config. Gần nhất là LocalCommand nhưng nó không thể được sử dụng cho lệnh tương tác.
lgeorget

1
Xin vui lòng giải thích (trong câu hỏi của bạn) tại sao bạn cảm thấy thay đổi phải được thực hiện ssh_config? Có lẽ có những nơi tốt hơn để cấu hình thư mục bắt đầu, và sẽ hữu ích để hiểu tại sao có sự hạn chế cụ thể này đối với một giải pháp có thể.
roaima

1
Thực tế "không thể thực hiện được ssh_config" không biến điều này thành một bản sao của "làm điều đó trong Bash". "Bạn không thể làm điều đó" là một câu trả lời hoàn toàn hợp lệ.
Franklin Yu

1
@terdon Tuy nhiên, thực tế "không thể" có thể thay đổi theo thời gian. Vâng, bây giờ có thể. Bây giờ tôi (cũng như bất kỳ ai trong tương lai sắp thấy điều này) cần một câu trả lời mới, và chúng tôi bị kẹt ở đây. Nếu điều này không được mở lại, tôi tưởng tượng rằng con đường mong muốn là tạo ra một câu hỏi mới (và trả lời nó)?
Franklin Yu

Câu trả lời:


19

Không có cách nào để làm điều đó, cho đến khi OpenSSH 7.6 . Từ hướng dẫn :

RemoteCommand

Chỉ định một lệnh để thực thi trên máy từ xa sau khi kết nối thành công với máy chủ. Chuỗi lệnh kéo dài đến cuối dòng và được thực thi với trình bao của người dùng. Đối số để RemoteCommandchấp nhận mã thông báo được mô tả trong phần TOKENS .

Vì vậy, bây giờ bạn có thể có

RemoteCommand cd /tmp && bash

Nó đã được giới thiệu trong cam kết này .


5
Thêm RequestTTY forcenếu lệnh từ xa yêu cầu TTY. Ví dụ:tmux new -As my-session
Aaron Blenkush

Đây là sshtùy chọn sát thủ Cảm ơn!
nhed 6/2/19

Điều này làm cho nó không thể chạy các lệnh khác, ví dụ ssh my_hostname lssẽ thất bại với Cannot execute command-line and remote command.. Nó làm cho các công cụ khác sử dụng ssh như git và rsync cũng bị lỗi.
lại

2

Tôi muốn đặt ssh_config để sau khi nhập ssh my_hostname

Điều đó là không thể. Không có tùy chọn để đạt được điều đó trong ssh_config. Gần nhất với nó là thiết lập một bí danh bash hoặc hàm bash, chẳng hạn như

myssh() {
    ssh -t $1 "cd /dir/; bash"
}

1

Tôi đã trả lời trên một vé khác trước khi somoene chỉ ra đây là bản gốc.

Nếu sử dụng máy mac, khuyến nghị của tôi là sử dụng iTerm2 và tạo hồ sơ. Đặt ssh my_hostnametrong dòng lệnh, sau đó thêm lệnh cd /folder/another_one/much_much_deeper/trong văn bản gửi tại trường bắt đầu. Khi bạn kết nối với các phiên, nó sẽ ssh với tên máy chủ của bạn và cd vào thư mục trong trường hợp của bạn hoặc thực thi một lệnh.

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.