SSH thông qua một đường hầm hoặc trực tiếp tùy thuộc vào mạng mà tôi đã kết nối với


2

Có thể "tự động" cấu hình ssh để sử dụng cổng để kết nối với máy từ xa dựa trên địa chỉ IP của khách hàng hoặc một cái gì đó trong lượt thích không?

Giả sử tôi đang ở laptop, nơi tôi có thể cắm (thông qua kết nối có dây) vào mạng đại học và có quyền truy cập trực tiếp vào cluster.uni.edu, nhưng nếu tôi ở nhà, tôi phải nhảy qua gateway.uni.edu. Vì vậy, để kết nối với cụm từ nhà, tôi có thể có cái ~/.ssh/confignhư thế này:

Host cluster
    Host cluster.uni.edu
    ProxyCommand ssh -W %h:%p gateway.uni.edu

Vì vậy, tôi có thể chỉ ssh clustervà truy cập nó trong suốt nhảy qua cổng. Nhược điểm là nếu tôi cắm vào mạng lưới trường đại học, tôi không cần phải đi qua cổng, vì vậy để tránh nó, tôi sẽ phải làm một cái gì đó như thế ssh cluster.uni.edu.

Có thể thiết lập cái này để ssh không nhảy dù cổng không cần thiết? Tiêu chí sẽ là một cái gì đó như: Nếu eth0 được kết nối và IP là xxx.yyy.zzz.www, hãy kết nối trực tiếp, nếu không hãy sử dụng cổng .

Tôi nghĩ rằng điều này có thể rất nhiều để hỏi từ tệp cấu hình và các tùy chọn ssh tiêu chuẩn, nhưng tôi thực sự muốn tránh các tập lệnh trình bao bọc. (Lưu ý bên lề: Tôi đã sử dụng LocalFowrard để thực hiện loại việc này trước khi tôi biết về ssh -Wvì tôi không thích ý tưởng sử dụng netcatnhư ProxyCommand)

Cảm ơn!


Tôi không cho rằng chỉ cần có một Host cluster1mục thứ hai mà không có proxy là đủ? Vậy ssh clusterkhi nào bên ngoài, và ssh cluster1khi nào bên trong?
Paul

bạn có thể sử dụng tập lệnh riêng của mình cho proxycommand để quyết định xem có nên kết nối qua proxy hoặc tắt kết nối trực tiếp đến mục tiêu cuối cùng hay không.
Sparkie

@Paul: vâng, tôi có thể làm điều đó, nhưng tôi tò mò về khả năng của ssh_config
Elton Carvalho

@sparkie: Một khả năng khác xảy ra với tôi, đó là lý do tại sao tôi đề cập đến việc tôi đang cố gắng tránh các tập lệnh bao bọc.
Elton Carvalho

1
À đúng rồi, không tôi không nghĩ bạn có thể hoàn thành việc này với ssh một mình, nó sẽ cần một số kịch bản. Mặc dù bạn có thể đặt thử nghiệm vào ProxyCommanddòng lệnh, để tránh một tập lệnh bên ngoài.
Paul
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.