Làm cách nào để chạy lệnh từ xa trong PuTTY sau khi đăng nhập và giữ shell chạy?


35

Những gì tôi đang cố gắng thực hiện: bắt đầu một phiên PuTTY từ dòng lệnh, đăng nhập vào máy từ xa và cdđến thư mục được cung cấp.

putty.exe -agent -ssh some.host

Điều đó sẽ mở một phiên và đăng nhập với tên đăng nhập mặc định và khóa riêng của tôi.

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'

Điều đó sẽ mở một phiên, đăng nhập, thực hiện một lệnh ( cdtrong trường hợp này) và thoát .

Làm cách nào để mở phiên, đăng nhập cdvà giữ phiên mở?

Bối cảnh: Tôi sử dụng emacs dưới windows và thường chỉnh sửa các tệp trên các máy Unix từ xa bằng cách sử dụng tramp & plink. Tôi muốn tạo một phím nóng mở phiên PuTTY cho máy từ xa đó và chdirs vào thư mục của tệp đó. Không phải là một vấn đề lớn về phía emacs, nhưng tôi bị mắc kẹt với PuTTY.

Câu trả lời:


33

Những gì -mnó làm là, nó làm cho PuTTY hướng dẫn máy chủ SSH khởi động (các) lệnh INSTEAD của shell. Vì vậy, một khi lệnh của bạn kết thúc, phiên cũng vậy.

Nếu bạn muốn chạy shell sau cdlệnh, bạn cần thêm nó một cách rõ ràng vào cmd.txt, như:

cd /my/path ; /bin/bash

Ngoài ra, -mngụ ý "nopty" ​​/ chế độ không tương tác. Để sử dụng shell tương tác, bạn cần ghi đè lên đó bằng công -ttắc .

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t

Hoặc sử dụng KiTTY với công -cmdtắc của nó , đó là những gì bạn muốn (và không cần tệp tạm thời).


Tôi đã thử điều đó (thêm / bin / bash vào cmd.txt) và nó không hoạt động. Theo tôi hiểu, bash bắt đầu ở chế độ không tương tác và, không có mã để thực thi, thoát. Có cách nào để bắt đầu một vỏ tương tác theo cách đó không?
Artyom V. Kireev

Trong khi đó, tôi đã cố gắng bắt đầu mc. :-) Nó không, và cung cấp một số đầu ra:Cannot get terminal settings: Invalid argument (22) TERM environment variable needs set.
Artyom V. Kireev

Cảm ơn đã hướng dẫn ở đây, nhưng tôi dường như có một vấn đề khi cố gắng sử dụng putty -m "myfile.sh" -tđể kết nối với một tinycorelinux vm (/ bin / ash). Tôi sẽ gặp lỗi sau: i.imgur.com/QN5oRXC.png (kịch bản của tôi bắt đầu bằng echo ".."nó sẽ luôn hiển thị chữ cái đầu tiên trong kịch bản của tôi sau các ký tự bất hợp pháp
Vincent De Smet

nếu tôi sử dụng cấu hình một lệnh từ xa trong cấu hình putty, nó sẽ hoạt động
Vincent De Smet

-1

Phiên tramp bạn đang bắt đầu trong emacs và phiên shell bạn chạy qua putty là các quy trình hoàn toàn riêng biệt.

Có lẽ bạn nên kiểm tra các tùy chọn cấu hình cho tramp để xem liệu có cách nào để đặt thư mục mặc định cho mỗi máy chủ trong cấu hình emacs của bạn không. Có thể bắt đầu với tramp-remote-pathtùy chọn cấu hình như tài liệu ở đây .

Nếu bạn cần sử dụng putty để thiết lập kết nối, có lẽ bạn muốn thiết lập một đường hầm ssh và có kết nối emacs / tramp thông qua đó.


Emacs & tramp không liên quan ở đây, tôi đã thêm rằng chỉ dành cho nền. Đó không phải là về việc chỉnh sửa tệp trong emacs, đó là về việc mở shell để làm một cái gì đó khác với tệp đó (ví dụ: chạy tập lệnh). Tôi mệt mỏi vì "bắt đầu putty, chọn bạn lưu trữ, sau đó cd vào đường dẫn bạn cần" và muốn tự động hóa điều đó.
Artyom V. Kireev
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.