Điểm:1

Tạo kết nối SSH đảo ngược liên tục từ máy chủ từ xa đến máy khách gia đình

lá cờ au

Tôi có một máy khách gia đình mà tôi muốn kết nối qua SSH từ máy chủ Ubuntu từ xa của mình. hiện tại tôi tạo một công việc định kỳ liên tục gọi từ máy khách tại nhà đến máy chủ từ xa của tôi.

Cho đến nay tôi đã thử: ssh -R 2222:localhost:22 root@<server-ip> -p 2222ssh -L 2222:localhost:22 root@<server-ip> -p 2222 trong một công việc định kỳ.

Tôi nghe trên máy chủ bằng cách sử dụng nc-lvnp 2222 và tôi nhận được một thông báo kết nối nói rằng Đã nhận được kết nối vào ngày 104.136.5.228 63119 SSH-2.0-OpenSSH_8.8p1 Debian-1

Tôi cũng đã thử sử dụng khóa riêng của máy chủ để đăng nhập qua SSH. Từ khách hàng: ssh-copy-id root@<server-ip>ssh -i id_rsa root@<server-ip>.

Phản hồi của máy chủ: root@<server-ip>: Quyền bị từ chối (khóa công khai).

Nhưng một lớp vỏ ngược lại không xuất hiện. Bất kỳ trợ giúp nào đi đúng hướng đều được đánh giá cao.

John Ronald avatar
lá cờ ca
Đảm bảo rằng ~/.ssh/authorized_keys của bạn có quyền chính xác
Điểm:2
lá cờ br
gma

Nếu bạn muốn tạo kết nối ssh với máy chủ lưu trữ tại nhà của mình, bạn cần có trình nền ssh chạy trên đó:

# giả sử rằng máy chủ ssh đã được cài đặt trên máy chủ lưu trữ tại nhà
máy chủ nhà $ Sudo systemctl bắt đầu sshd

Bạn có thể tạo đường hầm ssh đảo ngược liên tục giữa máy chủ tại nhà và máy chủ từ xa bằng:

máy chủ nhà $ ssh -Nf -R 2222:localhost:22 máy chủ từ xa

-nf sẽ đặt máy khách ssh ở chế độ nền mà không thực hiện bất kỳ lệnh nào trên máy chủ.

-R 2222:máy chủ cục bộ:22 sẽ phân bổ một ổ cắm để nghe tại localhost:2222/tcp trên máy chủ từ xa. Ổ cắm này sẽ chuyển tiếp tất cả các gói tới home-host:22/tcp thông qua kết nối an toàn được thiết lập.

Bây giờ, được kết nối trong một thiết bị đầu cuối trên máy chủ từ xa, bạn có thể kết nối với daemon ssh chạy trên máy chủ nhà bằng:

máy chủ từ xa $ ssh localhost -p 2222

Lưu ý rằng bạn có thể sử dụng kỹ thuật này để kết nối với bất kỳ dịch vụ mạng nào chạy trên home-host, không chỉ sshd. Ví dụ: nếu bạn có một máy chủ web chạy trên 80/tcp trên máy chủ lưu trữ tại nhà, thì nó có thể được tạo đường hầm bằng:

máy chủ nhà $ ssh -Nf -R 8080:localhost:80 máy chủ từ xa

Vì vậy, trên máy chủ từ xa, điều kỳ diệu xảy ra với:

máy chủ từ xa $ wget http://localhost:8080
pa4080 avatar
lá cờ cn
Câu trả lời tốt! Tôi cũng sẽ thêm tùy chọn `-T` để tắt phân bổ thiết bị đầu cuối giả cho lệnh `ssh`: `ssh -TNf ...`
Điểm:1
lá cờ cn

Đây là cấu hình như vậy từ một trong những máy chủ mà tôi duy trì. Cấu hình sử dụng dịch vụ systemd được tạo ở phía máy khách. Ngoài ra nó sử dụng tự động, vì vậy bước đầu tiên chúng ta cần cài đặt nó.

sudo apt cài đặt autossh

Sau đó tạo tệp cấu hình SSH.

sudo nano /etc/ssh/ssh_config.d/auto-ssh-systemd-hosts.conf
Máy chủ reverse.server-name.com
    Tên máy chủ 192.168.1.199
    IdentityFile /root/.ssh/server-name.com/id_rsa
    người dùng người dùng
    Cổng 2222
    Chuyển tiếp cục bộ 22 127.0.0.1:2222
    Chuyển tiếp từ xa 2222 127.0.0.1:22
    GatewayPorts có
    Nén có
  • Lưu ý khóa SSH thuộc quyền sở hữu của người dùng root, vì nó sẽ là chủ sở hữu của dịch vụ.
  • Đừng quên thay đổi các thông số Chủ nhà, Tên máy chủtập tin nhận dạng.
  • Ở đây giả sử máy chủ ssh ở cả hai hệ thống lắng nghe cổng tùy chỉnh 2222.

Ở giai đoạn này, bạn sẽ có thể:

Sudo ssh reverse.server-name.com # hoặc
Sudo autossh reverse.server-name.com

Cuối cùng tạo dịch vụ.

Sudo nano /etc/systemd/system/autossh-reverse-server-name.service
[Đơn vị]
Mô tả=Giữ đường hầm SSH để mở 'server-name.com'
Sau=mạng-online.đích

[Dịch vụ]
Người dùng = root
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" reverse.server-name.com
ExecStop=/usr/bin/killall -s KILL autossh
Khởi động lại = luôn luôn
Khởi động lạiSec=3

[Cài đặt]
WantedBy=multi-user.target
  • Thay thế tên máy chủ.comđảo ngược.server-name.com với các giá trị thực tế.

Bây giờ kích hoạt và bắt đầu dịch vụ.

Sudo systemctl daemon-tải lại
Sudo systemctl kích hoạt autossh-reverse-server-name.service
Sudo systemctl start autossh-reverse-server-name.service

Để dừng và vô hiệu hóa dịch vụ.

Sudo systemctl stop autossh-reverse-server-name.service
Sudo systemctl vô hiệu hóa autossh-reverse-server-name.service

Bạn có thể nhận trạng thái hoặc khởi động lại dịch vụ bằng các lệnh sau.

Sudo systemctl status autossh-reverse-server-name.service
Sudo systemctl khởi động lại autossh-reverse-server-name.service

Dịch vụ sẽ được khởi động lại tự động nếu nó bị treo. Mặt khác tự động sẽ giữ cho nó tồn tại lâu hơn nhiều so với ssh, vì nó cũng tự động phát hiện lỗi kết nối.

Người giới thiệu:


Khi dịch vụ được bắt đầu, bạn sẽ có thể:

[email protected]:~$ ssh localhost -p 22 # kết nối với máy cục bộ
user@local-machine:~$ ssh localhost -p 22 # kết nối với tên máy chủ.com

Tất nhiên, bạn sẽ cần cung cấp dữ liệu xác thực chính xác cho các lệnh.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.