Làm thế nào để tăng tốc độ đăng nhập ssh quá chậm của tôi?


42

Chạy ssh user@hostnamemất ~ 30 giây. Đây là kịch bản:

  • Đây là một VM trên mạng LAN cục bộ
  • Máy Windows và Mac có thể đăng nhập ngay lập tức
  • Tôi đang sử dụng Debian và tôi có thể sao chép bằng máy Ubuntu
  • ai đó đang sử dụng Ubuntu nói rằng việc đăng nhập vào máy của tôi (mạng LAN cục bộ) cũng ngay lập tức
  • sử dụng địa chỉ IP tên máy chủ mất khoảng một nửa thời gian (~ 15 giây)

[ cập nhật ]

Sử dụng ssh -vvv user@hostname, đây là nơi nó chờ đợi nhất:

debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic

Và sau đó nó chờ một chút ở đây:

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

1
Bạn có sử dụng mật khẩu hoặc xác thực pubkey? và nếu mật khẩu, là một id_dsahoặc id_rsatập tin trong của bạn ~/.ssh? có thể cài đặt ssh của bạn trước tiên thử xác thực sai và máy chủ của bạn không từ chối mà chỉ cần bỏ qua yêu cầu đó dẫn đến thời gian chờ 30 giây đó
Tobias Kienzler

@tobias Tôi sử dụng mật khẩu và tôi không có "~/.ssh"tập tin. Đó là một thư mục, và nó chỉ có "known_hosts"tập tin trong đó.
tshepang

5
Có vẻ như bạn có thời gian chờ DNS 15 giây. Có thể máy chủ đang thực hiện tra cứu DNS; nếu bạn có thể, hãy chắc chắn rằng bạn có UseDNS notrong sshd_configmáy chủ. Trong mọi trường hợp, hãy chạy ssh -vvv user@hostnameđể xem nơi đăng nhập được treo.
Gilles 'SO- ngừng trở nên xấu xa'

@gil Cảm ơn. Tôi cập nhật câu hỏi. Tôi sẽ yêu cầu quản trị viên kiểm tra cài đặt UseDNS đó .
tshepang

3
@Tshepang: Ồ, bạn đang sử dụng xác thực Kerberos (GSSAPI). Tôi không quen thuộc với nó. Nếu nó được định cấu hình sai, có thể nó gây ra sự chậm trễ. Đây là một cái gì đó bạn có thể yêu cầu quản trị viên của bạn. DNS có thể là cá trích đỏ; đó là nguyên nhân phổ biến nhất trong tự nhiên, nhưng có lẽ vấn đề của bạn là khác.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


32

Chỉnh sửa " / etc / ssh / ssh_config " của bạn và nhận xét các dòng sau:

GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

3
+1 câu trả lời hay! (1) Đây có phải là tốc độ bình thường để kết nối đăng nhập ssh mất thời gian con trỏ nhấp nháy 7 lần không? (2) Tại sao nó hoạt động bằng cách bình luận GSSAPIAuthentication yesGSSAPIDelegateCredentials no? @Tshepang
Tim

@Tim (1) quá dài ... tùy thuộc vào kết nối, tôi không hy vọng nó sẽ mất hơn 2 giây; (2) Tôi không biết, chỉ là nó hoạt động
tshepang

1
Mặc định cho GSSAPIAuthentication trong hầu hết các phiên bản OpenSSH là "không", nhưng một số distro đặt nó thành "có" trong các tệp sshd_config và ssh_config. Nếu bạn không cần / sử dụng nó, nó sẽ làm chậm quá trình bắt tay kết nối / xác thực.
tgharold

Nếu xác thực LDAP / AD đang được sử dụng, việc không vô hiệu hóa GSSAPI sẽ khiến một liên kết đơn giản được sử dụng, có khả năng gửi mật khẩu qua mạng trong bản rõ?
Shannon

Xác minh tất cả các máy chủ tên vẫn tồn tại trong /etc/resolv.conf. Nếu họ không, đưa họ ra ngoài. Điều này giải quyết vấn đề của tôi.
kỹ thuật viên

30

Tôi đã gặp vấn đề này và giải quyết nó bằng cách tắt độ phân giải Reverse DNS trong SSH.

Vì vậy, sshd_configtrên máy chủ thay đổi điều này:

 #UseDNS yes

đến đây:

UseDNS no

1
Tôi đã thực hiện thay đổi (mặc dù tôi không có tùy chọn UseDNS nhận xét ), đặt lại máy chủ ssh của tôi và vẫn gặp vấn đề tương tự.
tshepang

2
@Tshe hmm, lẻ. Vấn đề tốc độ duy nhất tôi từng gặp phải với SSH là do vấn đề này.
Earlz

1
Tôi đã nghi ngờ khi tôi sử dụng để đăng nhập bằng địa chỉ IP (mạng LAN gia đình), nhưng giải pháp này đã khắc phục vấn đề của tôi. Vì lợi ích của Google, mặc dù nó đã xảy ra ngay sau đó, sự chậm trễ không liên quan gì đến thông báo "key: /home/mylogin/.ssh/id_ecdsa ((nil))" (khi chạy ssh -vvv).
Skippy le Grand Gourou

7

Bạn đã xác minh thiết lập DNS của bạn?

Hãy thử cài đặt mdns offtrong /etc/host.conf.

Điều này vô hiệu hóa độ phân giải mdns và giúp tôi rất nhiều.

BIÊN TẬP:

Có vẻ như gentoo đang xử lý việc này hơi khác một chút. Để vô hiệu hóa tra cứu DNS đa hướng, bạn phải thay đổi tệp /etc/nsswitch.conf.
Cần có một cái gì đó như:

hosts:          files mdns

Thay đổi nó thành:

hosts:          files dns

+1 ý tưởng hay. @Tshepang ssh có kết nối nhanh hơn khi bạn sử dụng IP của tên máy chủ không?
Tobias Kienzler

@tobias mất một nửa thời gian
tshepang

Tôi nhận được /etc/host.conf: line 2: bad command mdns off'` khi tôi chạy ssh user@hostname.
tshepang

Có vẻ đây là một cài đặt lỗi thời, vì glibc 2.3.x (2006): forum.gentoo.org/viewtopic-t-476558-highlight-mdns.html . Bạn đang sử dụng cái gì (HĐH, phiên bản glic)?
tshepang

1
Bạn đang nói rằng chỉ mất một nửa thời gian khi bạn sử dụng địa chỉ IP. Điều này có nghĩa là bạn gặp vấn đề với độ phân giải tên của mình (IP => FQDN hoặc FQDN => IP). Vì vậy, trước tiên hãy xem cấu hình DNS của bạn và sau đó thử tìm hiểu xem bạn có vấn đề với ssh hay không.
Christian

3

Thêm tên máy chủ để /etc/hostsđôi khi có thể giải quyết vấn đề này.


Hoạt động cho một tên máy chủ duy nhất, nhưng giải pháp của Earlz chung chung hơn (và khắc phục cùng một vấn đề).
Skippy le Grand Gourou

1

Ngoài ra kiểm tra nếu nscdđược cài đặt và chạy.

Không có bộ đệm dns có thể tăng thời gian giải quyết bản ghi PTR (giả sử rằng máy khách ssh đang thực hiện tra cứu ngược dns cho địa chỉ IP của máy chủ)


0

Tôi gặp vấn đề tương tự trong môi trường Windows 2008 R2 nhưng "useDNS no" không hoạt động.

Tôi cố gắng thêm vào máy chủ lưu trữ IP và máy chủ lưu trữ của máy chủ kết nối và nó nhanh hơn 30 giây. Điều này khiến tôi nghĩ rằng độ phân giải có thể nằm trong DNS.

Tôi thử thêm máy chủ DNS nhưng điều này không giải quyết được.

Máy chủ của tôi có hai hậu tố DNS. 1 cho miền công ty nơi máy chủ thuộc về (domain.com) và miền kia cho giao diện bên ngoài kết nối với mạng riêng (domain.net).

Thứ tự hậu tố DNS là domain.net trước rồi domain.com tiếp theo

Các máy khách SFTP / SSH của tôi nằm trong miền công ty. Bằng cách khách hàng có vấn đề là từ miền công ty.

Điều làm việc cho tôi là tôi tạo domain.com trước sau đó domain.net thứ hai

Độ trễ kết nối 2m30 trước chỉ trở thành 3-4 giây.

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.