Khắc phục: Pseudo-terminal sẽ không được cấp phát vì stdin không phải là thiết bị đầu cuối

Trong hầu hết các trường hợp, bạn sẽ nhận được một terminal giả khó hiểu sẽ không được cấp phát vì stdin không phải là lỗi thiết bị đầu cuối chỉ khi bạn đang chạy một số lệnh SSH từ một tập lệnh. Nếu bạn đang chạy lệnh tương tự từ dòng lệnh, thì nó có thể hoạt động hoàn toàn tốt.

Trước khi tiếp tục, hãy đảm bảo rằng bạn đã thêm khóa công khai của mình vào tác nhân SSH rồi thử sử dụng lại ssh. Bạn có thể vừa bị thiếu một chìa khóa. Mặt khác, nếu điều này không làm việc thì bạn sẽ cần phải làm một chút xử lý sự cố trong kịch bản của bạn.

Phương pháp 1: Bắt buộc và vô hiệu hóa phân bổ giả

Có một cặp tùy chọn dòng lệnh có thể khắc phục sự cố nhanh chóng cho bạn. Hãy thử ssh -t -t -R theo sau là phần còn lại của những gì bạn đang cố gắng kết nối vào để buộc phân bổ pseudo-terminal. Ví dụ: giả sử bạn sẽ sử dụng ssh -p 80 [email protected] để đăng nhập vào tài khoản của mình trên example.com, điều này tất nhiên là giả cho tài liệu không tồn tại.

Hãy thử chạy ví dụ: ssh -t -t -R -p 80 [email protected] và xem điều này có khắc phục được sự cố hay không. Tất nhiên bạn sẽ cần phải thay thế tên bằng tài khoản thực và tên máy chủ của bạn để đăng nhập thành công vào hệ thống. Điều này buộc việc phân bổ một thiết bị đầu cuối, vì vậy bạn không nên thấy thiết bị đầu cuối giả sẽ không được cấp phát vì stdin không phải là lỗi thiết bị đầu cuối.

Mặt khác, bạn có thể kết thúc bằng một chuỗi thông báo lỗi không đổi. Một số người dùng đã nhận xét rằng điều này có thể được coi là thú vị.

Nó chắc chắn bực bội mặc dù không phân biệt, do đó, sử dụng Ctrl + C để giết quá trình.

Bạn có thể thử chỉ sử dụng một công tắc -t hoặc tăng số. Nếu điều này không làm việc, hãy thay thế bất kỳ công tắc -t nào bằng công tắc -T trong lệnh, ví dụ ssh -T -R -p 80 [email protected] và xem nó có hoạt động hay không.

Phương pháp này vô hiệu hóa toàn bộ quá trình cấp phát giả thiết bị đầu cuối hoàn toàn, do đó, nó có thể hoạt động trong trường hợp buộc nó không. Tất nhiên, không có vấn đề nào trong số này là vấn đề từ dòng lệnh, nhưng hãy chắc chắn ghi chú khi bạn tìm thấy tùy chọn nào hoạt động từ tập lệnh của bạn để bạn có thể sử dụng nó trong bất kỳ tập lệnh nào trong tương lai mà bạn phải chạy để truy cập máy chủ đã nói.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Vì lệnh ssh đưa ra hai tùy chọn ngược lại với các tên tương tự nhau, hãy nhớ rằng -t bắt buộc phân bổ các đầu cuối giả trong khi -T vô hiệu hóa nó. Các tùy chọn này phân biệt chữ hoa chữ thường và chúng thường cần thiết từ bên trong các tập lệnh vì ssh cần một thiết bị đầu cuối TTY truyền thống để hoạt động. Đương nhiên, trong trường hợp của bạn, bạn sẽ sử dụng trình mô phỏng thiết bị đầu cuối của bạn cho mục đích này.

Phương pháp 2: Sử dụng sshpass

Một số người có thể thấy rằng các tập lệnh của họ hoạt động tốt hơn với lệnh sshpass, không được bao gồm theo mặc định. Bạn luôn có thể cài đặt nó với sudo apt-get install sshpass hoặc sudo yum install sshpass nếu bạn muốn dùng thử hoặc vì bạn cần nó cho trường hợp sử dụng cụ thể của bạn.

Nếu bạn chưa sử dụng nó, thì có thể bạn không cần nó. Tuy nhiên, bạn có thể sử dụng các kỹ thuật tương tự để làm ngạc nhiên các thông báo lỗi liên quan đến phân bổ giả thiết bị đầu cuối trong loại môi trường này.

Ví dụ, sử dụng sshpass -p password ssh -T [email protected] để buộc hệ thống làm việc từ bên trong kịch bản của bạn.

Phương pháp 3: Sửa lỗi quản lý công việc

Thỉnh thoảng bạn có thể nhận được một thông báo lỗi khác ngay cả sau khi sửa tất cả điều này. Nếu bạn nhận được một cảnh báo không đọc quyền truy cập vào tty và sau đó bạn được nhắc nhở rằng không có kiểm soát công việc trong trình bao của bạn, bạn sẽ có thể làm việc một cách bình thường.

Lỗi này được gây ra bởi một cái gì đó không thường xuyên trên máy chủ từ xa liên quan đến csh, tcsh hoặc thậm chí có thể là Almquist hoặc trình bao khác. Bạn có thể không nhận thấy nó vì bạn đã nhận được các thông báo lỗi khác, nhưng miễn là bạn không thấy bất kỳ thông tin nào khác về các đầu cuối giả, bạn có thể tiếp tục tương đối giống như cách bạn thường làm.

Tuy nhiên, bạn có thể không muốn thử sử dụng tổ hợp phím Ctrl + Z trong trường hợp này để dừng quy trình, vì không có cách nào để chúng bắt đầu sao lưu lại. Nếu bạn nhận được một thông báo lỗi mà đọc có dừng công việc khi bạn thoát ra, sau đó bạn sẽ không được phép đăng xuất.

Sử dụng lệnh ps và kill để đóng bất kỳ công việc nào bạn không thể đóng, giả sử bạn không nhớ mất công việc trong tiến trình. Bạn sẽ có thể thoát ngay bây giờ.

Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây

Facebook Twitter Google Plus Pinterest