Sao chép nội dung tệp - Web cá độ bóng đá

/imgposts/czr0p0gm.jpg

Sau khi mua mới một máy chủ Linode ở nước ngoài, tôi nhận thấy không thể đăng nhập qua ssh. Lỗi hiển thị như sau:

ssh: connect to host x.x.x.x port 22: Resource temporarily unavailable Tuy nhiên, thông qua một máy chủ khác tại DigitalOcean mà tôi có thể đăng nhập được, từ máy này thì hoàn toàn có thể kết nối ssh đến máy chủ Linode. Rõ ràng bd truc tuyen là địa chỉ IP của máy chủ Linode đã từng được sử dụng để xây dựng trang web trước đây và bây giờ đã bị các cơ quan mật khẩu trong nước chặn. Điều này thực sự gây khó chịu, chẳng lẽ mỗi lần phải thực hiện thao tác đều phải thông qua một máy chủ khác sao? Hơn nữa mạng cũng không ổn định lắm, việc gõ lệnh trên đó rất chậm chạp. Tôi tự hỏi liệu có công cụ hoặc lệnh nào giúp tôi có thể kết nối ssh trực tiếp từ máy tính cục bộ đến máy chủ bị chặn này hay không, có lẽ điều đó sẽ giảm thiểu độ giật lag.

ssh username@IP_mục_đích -J username@IP_máy_chuyển [so keo](/blog/during-outbreak-of-google-adsense-ads-on-cause-of-rise/) 

Khi thực thi lệnh này, trước tiên hệ thống sẽ yêu cầu nhập mật khẩu đăng nhập cho máy chuyển (jump host), sau đó sẽ nhắc nhở nhập mật khẩu đăng nhập cho máy mục đích. Nếu muốn bỏ qua bước nhập mật khẩu, bạn cần làm theo hai bước sau:

  1. Sao cách chơi tài xỉu md5 chép nội dung tệp ~/.ssh/id_rsa.pub của máy cục bộ vào tệp ~/.ssh/authorized_keys của máy chuyển.
  2. Sau đó, sao chép id_rsa.pub của máy chuyển vào authorized_keys của máy mục tiêu. Lưu ý rằng hiểu sai ở đây có thể xảy ra nếu bạn đổi sang một máy tính khác mà khóa công khai (public key) của nó có trên máy chuyển nhưng không có trên máy mục tiêu, lúc đó vẫn cần nhập mật khẩu. Vì vậy, khóa công khai của máy hiện tại cần phải có trên máy mục tiêu. (Để đơn giản hóa, bạn có thể sao chép cả khóa công khai của máy chuyển lẫn máy cục bộ vào máy mục tiêu.)

Bằng cách sử dụng lệnh này, bạn có thể đăng nhập trực tiếp vào máy chủ mục tiêu mà không gặp rắc rối gì. Bạn cũng có thể lưu lệnh ssh này vào một tập lệnh shell để có thể đăng nhập chỉ với một cú nhấp chuột. Lưu ý: Nếu không sao chép id_rsa.pub của máy chuyển vào máy mục tiêu, sẽ xuất hiện lỗi:

kex_exchange_identification: Connection closed by remote host

Qua việc đọc tài liệu hướng dẫn bằng lệnh man ssh, ta có thể thấy giải thích về tham số -J như sau:

-J destination
Kết nối tới máy chủ mục tiêu bằng cách đầu tiên tạo một kết nối ssh tới máy chuyển được mô tả bởi destination và sau đó thiết lập chuyển tiếp TCP tới đích cuối cùng từ đó. Nhiều bước chuyển có thể được chỉ định, phân cách bằng dấu phẩy. Đây là một cách tắt để chỉ định lệnh cấu hình ProxyJump. Lưu ý rằng các lệnh cấu hình được cung cấp trên dòng lệnh thường áp dụng cho máy chủ đích chứ không phải bất kỳ máy chuyển nào. Sử dụng ~/.ssh/config để đặt cấu hình cho máy chuyển.

Mặc dù nhiều người khuyến khích sử dụng tệp ssh config để thiết lập proxy host, nhưng tôi cảm thấy việc lưu giữ dưới dạng tập lệnh shell ngắn gọn và trực quan hơn.