'Chuyển vùng không được máy chủ' cho phép của máy khách ssh nghĩa là gì?


25

Tôi không thể kết nối với phiên bản máy chủ SSH và đầu ra dài dòng chứa debug1: Roaming not allowed by server. Những vấn đề có thể dự đoán sau đây và có thể tránh được phát sinh:

  • Chuyển vùng có nghĩa là truy cập các dịch vụ từ các loại mạng khác nhau. Tôi không thể hiểu ý nghĩa của nó trong bối cảnh đầu ra dài dòng của sshmáy khách 6.6.1 chạy trên Ubuntu 14.04.
  • Nó không phải là rõ ràng cho dù đây là một lỗi hay không và nếu nó là liệu nó đang gây ra sự thất bại của việc đăng nhập hay không (Tôi không muốn đi sâu vào sự thất bại kết nối ở đây, mặc dù, không ai trong số các thông điệp đầu ra của sshkhông BTW -> nhiều vấn đề hơn và thời gian thắt lưng - bạn đã được cảnh báo!)
  • Tôi đã truy vấn site:www.openssh.org roaminggoogle với kết quả trống và các trang web không chứa thuật ngữ này. Nó là vô nghĩa để sử dụng nó ngay cả khi nó đã được ghi nhận vì sự mơ hồ của nó!

Tin nhắn có thể có ý nghĩa gì? Làm cách nào tôi có thể sử dụng nó để gỡ lỗi tập hợp lớn các lỗi rất mơ hồ, không trực quan và không hữu ích khác và các thông báo khác của SSH?

Câu trả lời:


22

Đây không thực sự là một thông báo lỗi. Đó chỉ là một thông báo gỡ lỗi cho bạn biết rằng máy chủ không chấp nhận kết nối chuyển vùng.

Chuyển vùng rõ ràng là một tính năng thử nghiệm được thêm vào OpenSSH vào năm 2009 hoặc lâu hơn. Mục đích của tính năng này là để cho máy khách ssh ngắt kết nối với phiên máy chủ và sau đó tiếp tục phiên từ vị trí khác. Xem ở đây để thảo luận về nó. Googling ssh, chuyển vùng và "Martin Forssén" sẽ bật lên các trang khác. Có vẻ như nó không được tích cực phát triển. Tôi nghi ngờ các nhà phát triển SSH không bao giờ ghi lại tài liệu này vì nó thử nghiệm và có lẽ chưa hoàn thành.

Từ việc kiểm tra mã nguồn OpenSSH, có một tùy chọn phía máy khách không có giấy tờ UseRoamingcó thể được đặt thành có hoặc không. Thêm dòng "UseRoaming no" vào cấu hình máy khách của bạn (thông thường là .ssh/configtệp của bạn ) phải loại bỏ thông báo gỡ lỗi.

Tôi không rõ tại sao HostbasedAuthenticationcài đặt phía máy chủ sẽ kiểm soát xem máy chủ có chấp nhận kết nối chuyển vùng hay không.

Cập nhật: Hỗ trợ chuyển vùng của khách hàng rõ ràng là chủ đề của báo cáo phơi nhiễm lỗ hổng máy tính, CVE-2016-0777 . Phiên bản OpenSSH 5.4 đến 7.1p1 dễ bị tấn công. Người dùng nên nâng cấp lên OpenSSH 7.1p2 trở lên. Người dùng không thể nâng cấp nên vô hiệu hóa chuyển vùng trong máy khách bằng cách thêm "UseRoaming no" vào cấu hình máy khách ssh của họ. Xem như sau:


7
Vâng, bây giờ nên đặt nó thành không. mail-archive.com/misc@openbsd.org/msg144351.html
nikeee

1
@nikeee: ... và đó là một câu chuyện cảnh báo về việc không vận chuyển các cuống không hoạt động "vô hại". (Lưu ý rằng bạn cần đặt nó notrong cài đặt máy khách , không phải trên máy chủ)
Piskvor

@Piskvor nhưng có khá nhiều sách devops / webops tuyên truyền làm điều đó .. họ có thể sai không? Oh.
Florian Heigl

giải thích tốt nhất về cấu hình này trên mạng.
nils petersohn

4

Thay đổi từ openssh 5.3 trên CentOS6 có một lưu ý:

27/11/2009
     Thêm tùy chọn máy khách UseRoaming. Nó không làm gì cả nhưng sẽ
     kiểm soát xem khách hàng có cố gắng sử dụng chuyển vùng hay không nếu được bật trên
     máy chủ. Từ Martin Forssen.

3

@ ILMostro_7 chmod 600 ủy quyền đã hoạt động tốt với tôi.

Vì lợi ích của bất kỳ ai khác đến đây bởi googling "chuyển vùng không được phép bởi máy chủ", và đang sử dụng một Linux (Ubuntu) khách hàng, bạn có thể khắc phục điều đó cảnh báo và sau đó nhìn thấy: -

Agent admitted failure to sign using the key

Phương pháp chữa trị được đưa ra tại https://help.github.com/articles/error-agent-admit-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = Nhận xét. bạn = tên người dùng của bạn. [tippy tap] = humo [u] r? = nhấn phím Enter.

Tôi hy vọng điều đó sẽ giúp được ai đó nhiều như Q & A này đã giúp tôi.


2

Thông báo lỗi này có thể hiển thị khi /etc/ssh/sshd_configkhông được HostbasedAuthenticationđặt yestrên máy chủ.

Tôi không biết tại sao.

Một vấn đề khác có thể là:

Kiểm tra các quyền trên thư mục $ USER / .ssh do người dùng sở hữu và là chmod 700. Tệp ủy quyền cũng phải là chmod 700 và thuộc sở hữu của người dùng


700? Tại sao bạn cần executebit trên keyfile?
ILMostro_7

Trích dẫn từ đâu? Vui lòng thêm một tài liệu tham khảo.
Karl Richter

ILMostro_7 không có trong tệp, nó nằm trong thư mục và để người dùng có thể tạo tệp trong thư mục, cờ thực thi phải được đặt
IceyEC

@IceyEC Câu trả lời gợi ý 700 cho ủy quyền .
mdrozdziel

1
Nên chmod 400. Không biết tại sao tôi muốn tập tin đó được thực thi; và truy cập viết cũng không mong muốn 99,999% thời gian. sshdkiểm tra xem .sshthư mục của người dùng không có quyền truy cập cho nhóm và khác, và tương tự như vậy đối với .ssh/authorized_keys. Do đó, các phép trong câu trả lời có thể hoạt động, nhưng chúng rộng một cách không cần thiết.
Piskvor
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.