Câu hỏi Lưu trữ máy chủ lưu trữ SSH Tunnel


Tôi muốn tạo một đường hầm SSH đầy đủ giữa hai máy chủ Ubuntu 12.04, (tôi đã tìm hiểu về SSHuttle nhưng vì một lỗi trong việc xử lý các bộ mô tả tập tin nó sẽ bị hỏng dưới tải cao) rất giống IPSEC nhưng vì tôi cần nó chỉ cho hai tổ chức sự phức tạp của việc tạo ra một cấu hình IPSEC chính thức trông có vẻ là một quá mức cần thiết.

Những gì tôi muốn đạt được là tất cả các dữ liệu đi giữa server1 và server2 sẽ được mã hóa mà không cần phải tạo ra hàng nghìn cổng động SSH.


2
2018-05-21 10:55


gốc


Man cảm ơn bạn, cho câu hỏi của bạn tôi đã tìm thấy một blog rất tốt cho quản trị viên của sys. Tôi cũng sẽ đăng câu trả lời. - rɑːdʒɑ
Bạn có ý gì bởi "đường hầm ssh đầy đủ"? - Rémi
Đường hầm SSH đầy đủ giống như trong việc truyền tất cả các cổng \ connections \ data \ sessions và không chỉ một cổng đơn lẻ giống như các tùy chọn -D của SSH cho các cổng động - Ba7a7chy
Sau đó, tôi khuyên bạn nên sử dụng phần mềm VPN (chẳng hạn như openvpn) thay vì ssh. thiết lập openVPN giữa hai máy chủ thực sự đơn giản. - Rémi


Các câu trả lời:


Câu trả lời này thuộc về brandonchecketts.

Giả sử Bạn có hai máy chủ có tên Host-A và Host-B. Bây giờ chúng ta sẽ tạo một đường hầm SSH giữa hai cái này và chắc chắn rằng Tunnel đang hoạt động và luôn luôn sống.

Cấu hình cần được thực hiện cho Host-A:

Mở thiết bị đầu cuối của bạn, chuyển thành root và dán mã sau một

useradd -d /home/tunnel tunnel
passwd tunnel 
su - tunnel    

bước tiếp theo là tạo khóa SSH

Trong các thiết bị đầu cuối dán như

ssh-keygen

và sau đó chọn lựa chọn mặc định cho tất cả lời nhắc và sao chép khóa bằng

cat /.ssh/id_rsa.pub

Bây giờ chúng ta phải cấu hình cho Host-B

Mở terminal của bạn và thực thi các lệnh này

useradd -d /home/tunnel tunnel
passwd tunnel 
su - tunnel

và trong loại thiết bị đầu cuối như

mkdir .ssh
vi .ssh/authorized_keys

Nó sẽ mở một tệp trong thiết bị đầu cuối và dán khóa được sao chép ở trên từ Máy chủ-A.

Bây giờ trong loại thiết bị đầu cuối là

vi /home/tunnel/check_ssh_tunnel.sh

và dán như

createTunnel() {
    /usr/bin/ssh -f -N -L13306:hostb:3306 -L19922:hostb:22 tunnel@hostb
    if [[ $? -eq 0 ]]; then
        echo Tunnel to hostb created successfully
    else
        echo An error occurred creating a tunnel to hostb RC was $?
    fi
}
## Run the 'ls' command remotely.  If it returns non-zero, then create a new connection
/usr/bin/ssh -p 19922 tunnel@localhost ls
if [[ $? -ne 0 ]]; then
    echo Creating new tunnel connection
    createTunnel
fi

lưu và đóng và làm cho nó có thể thực thi được

chmod 700 /home/tunnel/check_ssh_tunnel.sh

và sau đó chạy kịch bản, nó sẽ bắt đầu một đường hầm với máy tính từ xa.

Đọc liên kết ở trên, nó là phải.


2
2018-05-21 11:14



Nhưng điều này chuyển tiếp chỉ có một cổng, không? - Rémi
bạn muốn nhiều cổng phải không? - rɑːdʒɑ
@ Rémi kiểm tra điều này unix.stackexchange.com/questions/19242/… - rɑːdʒɑ
Điều này sẽ chỉ tạo ra một đường hầm một cổng, nó là mát mẻ và rất thanh lịch nhưng không phải những gì tôi cần. - Ba7a7chy
@ Ba7a7chy k của nó, vui mừng của nó đã giúp bạn một chút - rɑːdʒɑ