Rủi ro nâng cấp qua SSH là gì?


75

Khi tôi chạy

sudo do-release-upgrade

qua ssh, tôi nhận được thông báo sau.

Phiên này dường như đang chạy dưới ssh. Nó không được khuyến khích
để thực hiện nâng cấp so với ssh hiện tại vì trong trường hợp thất bại, nó
khó phục hồi hơn

Nếu bạn tiếp tục, một daemon ssh bổ sung sẽ được bắt đầu tại cổng
'9004'.
Bạn có muốn tiếp tục?

Rủi ro thực sự của việc nâng cấp so với ssh là gì? Làm thế nào để dash ssh bổ sung giúp giảm thiểu điều này?

Câu trả lời:


56

Những gì tôi khuyên bạn nên làm là khởi chạy phiên màn hình trên máy chủ và chạy nâng cấp trên màn hình - theo cách đó nếu phiên SSH của bạn giảm (vì bất kỳ lý do gì), quá trình nâng cấp sẽ không dừng lại.

Màn hình là một chương trình cho phép (các) thiết bị đầu cuối liên tục trên máy. Vì vậy, bạn có thể bắt đầu một phiên màn hình và miễn là máy nằm trong phiên màn hình đó (và lịch sử, các chương trình đang chạy, v.v.) sẽ tiếp tục hoạt động mặc dù không có người dùng nào trên máy. Nó được thiết kế trong những ngày đầu để cung cấp một thiết bị đầu cuối văn bản nhiều cửa sổ trước thời của X Server. Bạn có thể cài đặt nó bằng APT:

sudo apt-get install screen

Vì vậy, bạn có thể ssh vào máy chủ của mình, khởi động màn hình, bắt đầu quá trình nâng cấp và không phải lo lắng về việc nâng cấp bẻ khóa vì bạn bị mất kết nối Internet hoặc máy tính của bạn bị hỏng.


1
Màn hình là một công cụ tuyệt vời cho tình huống này.
Ryan Thompson

7
Có vẻ như do-release-upgrade(kể từ chính xác) đang tự động thực thi screen.
manu

2
màn hình không còn nữa và điều này dường như không hoạt động với TMUX vì một số lý do. Nó trả về lỗi này: === Lệnh bị chấm dứt với trạng thái thoát 1 (Thứ tư ngày 19 tháng 10 21:14:13 2016) ===
Gman Smith

screen -dmS do-release-upgrade-> screen -rđể chuyển sang màn hình đang chạy -> Ctrl + A, Ctrl + D để màn hình chạy ở chế độ nền và quay lại màn hình chính
Ryan Allen

83

Giải pháp của @ Marco-Ceppi đã được tích hợp vào do-release-upgrade.

Khi bạn chạy do-release-upgradenó sẽ bắt đầu một phiên màn hình tự động. Nếu phiên ssh của bạn bị ngắt kết nối, bạn có thể tiếp tục cài đặt. Tất cả bạn phải làm là mở một phiên ssh mới và chạy do-release-upgradelại. Nó sẽ kết nối lại với cài đặt trước đó của bạn.

Rủi ro thứ hai, được chỉ ra bởi @ sepp2k là máy chủ sshd của bạn có thể cần được nâng cấp và có lẽ nó không thể khởi động lại chính xác. Do đó, chương trình nâng cấp chạy một deamon thứ hai, tại cổng được chỉ định. Bạn nên kiểm tra cấu hình mạng của mình để đảm bảo bạn có quyền truy cập qua cổng này trước khi tiếp tục.

Chúc may mắn.

Ngoài ra, phiên màn hình tự do-release-upgradekhởi động được chạy trong tài khoản root, vì vậy nếu phiên màn hình của chính bạn gặp sự cố, bạn sẽ có thể khôi phục bằng cách chạy sudo screen -x, nếu (vì một lý do nào đó) lệnh do-release-upgradekhông tự phục hồi, mà dường như là phổ biến.


1
Bạn có biết phiên bản Ubuntu này là trường hợp nào không? Tôi đang cố gắng nâng cấp từ 9.10 và sau khi bắt đầu nâng cấp ( sudo do-release-upgrade) và trả lời "Có", tôi có thể kết nối với ssh trên cổng 9004 nhưng không có screenphiên nào được liệt kê khi thử sudo screen -list . (PS Tôi chưa qua giai đoạn tải xuống.)
mgd

7
Sau khi nâng cấp từ 9.10 lên 10.04 LTS (nơi do-release-upgradekhông bắt đầu phiên màn hình), giờ tôi đang nâng cấp từ 10.04 LTS lên 12.04 LTS và giờ do-release-upgradeđây sẽ tự động bắt đầu phiên màn hình.
mgd

2
Vì vậy, về cơ bản, do-release-upgradehãy xử lý mọi thứ trước khi xử lý, sau đó: 1) bạn có thể kết nối lại từ một ssh bị hỏng bằng cách chạy do-release-upgradelại sau khi đăng nhập lại và 2) bạn có thể đăng nhập lại từ nâng cấp sshd không thành công thông qua cổng được chỉ định lúc đầu do-release-upgrade. Là nó ?
Juh_

5
màn hình sudo -x đã cứu mạng tôi! Cảm ơn.
Felipe

4
Vậy thì tại sao tin nhắn cảnh báo vẫn còn đó? Nghe có vẻ rất đáng ngại.
Jahmic

17

Nếu một phiên bản mới của ssh daemon được cài đặt như một phần của bản nâng cấp, daemon sẽ được khởi động lại. Nếu một số lý do cập nhật phá vỡ trình nền, nó sẽ không khởi động lại được và bạn không còn cách nào để đăng nhập vào máy nữa.

Bằng cách bắt đầu một sshd riêng, không được xử lý bởi hệ thống init và do đó sẽ không được khởi động lại trong quá trình nâng cấp, đảm bảo rằng phiên bản cũ của sshd vẫn sẽ chạy ngay cả khi phiên bản mới không khởi động. Do đó, bạn vẫn có thể đăng nhập vào hệ thống và xem điều gì đã khiến trình nền bị hỏng.


1
Tôi nghĩ có liên quan hơn rằng, khi trình nền được khởi động lại, bản nâng cấp của bạn có thể sẽ bị chấm dứt chưa hoàn thành, vì quá trình đang chạy trên phiên ssh.
Malabarba

3

Tôi chưa bao giờ (chưa) gặp sự cố khi làm điều đó, mặc dù tôi chỉ nâng cấp hơn nửa tá hộp theo cách đó. Chỉ là nếu có sự cố xảy ra, trình nền SSH bổ sung có thể là hy vọng duy nhất của bạn để tránh truy cập (hoặc sử dụng bất kỳ tùy chọn cài đặt lại từ xa nào bạn có).

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.