ssh bị treo mà không có mật khẩu nhắc - hoạt động trong root hoặc các tài khoản khác


14

Tôi đã đăng nhập khóa ssh hoạt động tốt. Sau đó, tôi đã thay đổi tên máy chủ trên máy tính của mình và thông tin đăng nhập dựa trên khóa đã ngừng hoạt động. Dường như có ý nghĩa. các khóa có thể dựa vào tên máy chủ cũ của tôi. Vì vậy, tôi đã xóa tất cả các khóa của mình và tất cả các tệp trong ~ / .ssh / và tạo lại chúng (và thay đổi ủy quyền trên các máy chủ tôi kết nối)

Bây giờ, bất cứ khi nào tôi cố gắng ssh, nó chỉ bị treo mà không có dấu nhắc mật khẩu, bất kể tôi cố gắng ssh đến đâu - ngay cả các máy chủ nơi tôi không cài đặt đăng nhập khóa. Không có gì trong .ssh / config.

Hơn nữa, khi tôi 'su -' đến root, ssh hoạt động hoàn hảo. Không sao cả. Điều này chỉ xảy ra trên tài khoản người dùng của tôi.

Dưới đây là một số thông tin gỡ lỗi từ ssh

ssh -vv mylogin@myremoteserver.com
OpenSSH_5.2p1, OpenSSL 0.9.8k ngày 25 tháng 3 năm 2009
debug1: Đọc dữ liệu cấu hình /Users/myname/.ssh/config
debug1: Đọc dữ liệu cấu hình / usr / etc / ssh_config
......
debug1: Máy chủ 'myremoteserver.com' được biết và khớp với khóa máy chủ RSA.
debug1: Đã tìm thấy khóa trong /Users/myname/.ssh/ Unknown_hosts: 1
debug2: bit được đặt: 512/1024
debug1: ssh_rsa_verify: chữ ký chính xác
debug2: kex_derive_keys
debug2: set_newkeys: chế độ 1
debug1: SSH2_MSG_NEWKEYS đã gửi
debug1: mong đợi SSH2_MSG_NEWKEYS
debug2: set_newkeys: chế độ 0
debug1: Đã nhận được SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_SERVICE_REQUEST đã gửi
debug2: service_accept: ssh-userauth
debug1: Đã nhận được SSH2_MSG_SERVICE_ACCEPT

Và sau đó nó chỉ bị treo ở đây .....

Đây là đầu ra dtruss (như strace nhưng cho OSX) ở gần cuối nơi nó bị treo: sudo dtruss ssh -vv mylogin@myremoteserver.com

chọn (0x4, 0x508200, 0x0, 0x0, 0x0) = 1 0
đọc (0x3, "$ \ 222 \ 351 {L \ 363 \ 261 \ 25063 giây \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z # \ 0 ", 0x2000) = 48 0
ghi (0x2, "debug2: service_accept: ssh-userauth \ r \ n \ 0", 0x26) = 38 0
kết nối (0x4, 0xBFFFEEA2, 0x6A) = 0 0
viết (0x4, "\ 0", 0x4) = 4 0
viết (0x4, "\ v5 \ 004 \ 0", 0x1) = 1 0
đọc (0x4, "\ 0", 0x4) = -1 Err # 4

Nó dường như đang cố gắng đọc một cái gì đó và chỉ treo trên này. Nếu bất cứ ai có một số gợi ý hoặc ý tưởng, tôi sẽ rất biết ơn!


Tôi có vấn đề tương tự trên Snow Leopard (10.6.8 với các bản vá mới nhất từ ​​Apple). Nó chỉ xảy ra khi cố gắng kết nối với máy chủ qua VPN. Khởi động lại khắc phục sự cố tạm thời, nhưng chắc chắn nó sẽ quay trở lại. Tra cứu DNS máy chủ không phải là vấn đề (đã kiểm tra). Nó có liên quan đến trạng thái SSH trên máy khách. Giết ssh-agent hoặc chuyển sang root không giải quyết được vấn đề.
Daniel

Câu trả lời:


9

Lý do khách hàng ssh của bạn bị treo cho tài khoản của bạn nhưng không phải cho các tài khoản khác (root) có thể là do có gì đó không đúng với ssh-agent của bạn. Một trong hai cách ssh-agentlà không chạy hoặc cấu hình của nó bị sai theo một cách nào đó.

Để có xác nhận về điều đó, bạn có thể thử như sau:

unset SSH_AUTH_SOCK
ssh mylogin@myremoteserver.com

Nếu sau đó bạn được yêu cầu nhập cụm từ vào ssh_key, điều đó có nghĩa là bạn có vấn đề với tác nhân ssh.

Xem thêm bài viết của tôi về câu hỏi liên quan này .


Điều này đã làm công việc cho tôi! Tuy nhiên tôi cần phải làm điều đó mỗi lần tôi khởi động lại máy tính của mình. Bạn có biết một cách để khắc phục điều này vĩnh viễn?
Johan Dettmar

@JohanDettmar kiểm tra bài đăng được liên kết của tôi và những lời khuyên mà nó chứa. Nếu nó không giúp bạn nhiều hơn, có lẽ tốt nhất là hỏi một câu hỏi mới mô tả vấn đề của bạn với nhiều chi tiết hơn.
Tonin

7

Tôi có thể quan tâm bạn trong DNS ngược?

Về cơ bản, máy khách đang thực hiện DNS ngược trên máy chủ hoặc ngược lại.

Tôi đề xuất một bài kiểm tra:

Vô hiệu hóa tra cứu DNS trên máy chủ bằng cách chỉnh sửa / etc / ssh / sshd_config và đảm bảo "UseDNS" được đặt thành "không".

Chạy "dịch vụ ssh tải lại" (hoặc bất cứ điều gì khiến trình nền ssh của bạn đọc lại cấu hình), sau đó thử lại.

Ngẫu nhiên, cuối cùng nó không happeen nhắc bạn sau một thời gian dài, phải không?

Một điều khác bạn có thể kiểm tra là xem xét nội dung của / etc / hosts trên máy chủ để đảm bảo rằng không có gì sai ở đó.


1

Kiểm tra các quyền trên thư mục ~ / .ssh và các tệp trong đó. Ô mặc định của bạn có thể quá dễ dãi & khi bạn tạo lại các tệp bạn có thể đã vô tình cấp cho chúng các quyền sai. Tôi đã bị đốt cháy bởi điều này một vài lần bản thân mình. Không có ứng dụng khách (hoặc máy chủ) nào tôi sử dụng đã đưa ra một thông báo lỗi hữu ích về điều này ...


cảm ơn vì tiền hỗ trợ. có vẻ như perms của tôi là như nhau. tôi có thể sử dụng ssh fine w / tài khoản root của mình và tôi đã xác minh rằng các perm giống như tài khoản đó. Điều kỳ lạ là, nó chỉ bị treo và không nói gì cả. Cảm ơn sự cố gắng!
tiết kiệm

1

bạn có không gian đĩa trống trên máy khách của bạn (và trên máy chủ của bạn)?

df -h


Cảm ơn. Đúng. nhiều không gian hơn 100 hợp đồng biểu diễn miễn phí. Cảm ơn các mẹo tho.
tiết kiệm

1

Tôi đã có một vấn đề tương tự.

ssh domain.ip:user.name

Có vẻ như tôi có thể bỏ qua vấn đề bằng cách buộc một tên đăng nhập như vậy.

ssh -v domain.ip -l user.name

1

Đối với tôi, việc nâng cấp lên Snow Leopard đã giải quyết được vấn đề. Vì vậy, tôi nghĩ rằng nó có liên quan đến một lỗi trong OSX.


0

Nếu đó là do một khóa được lưu, bạn sẽ có thể xóa nó khỏi thư mục ~ / .ssh của bạn trong tệp know_hosts. Chỉ cần tìm mục và xóa nó sau đó nó sẽ nhắc bạn một lần nữa.

Mặt khác, nó sẽ đưa ra cảnh báo khi máy chủ không khớp với những gì đã ghi.

Tôi đã gặp vấn đề trong đó trên OS X, việc tra cứu tên máy chủ hoạt động giống như thất bại; kết nối chỉ hết thời gian chờ đợi quá lâu hoặc khi lời nhắc xuất hiện, nó đã chờ quá lâu, sẽ mất khoảng mười giây để bạn nhập mật khẩu trước khi hủy kết nối. Tôi không bao giờ có thể theo dõi nó mặc dù mọi người đề nghị thêm máy chủ được đề cập vào tệp máy chủ. Tôi đoán đó chỉ là một "trục trặc với việc tra cứu DNS của OS X" và nó được cho là sẽ được chấp nhận ... nếu ai đó gặp phải vấn đề này và giải quyết nó tôi rất muốn biết về nó.


Cảm ơn Bart! Vì vậy, về cơ bản tôi đã xóa mọi thứ bên trong .ssh (một cách khôn ngoan hoặc không chính xác) và hiện tại không có gì ở đó. Nó dường như vẫn đóng băng và tiếp tục treo. Vì tôi cũng đã thổi bay know_hosts, trước tiên, nó hỏi tôi có muốn tiếp tục kết nối không, đặt khóa vào tệp know_hosts và treo ở cùng một vị trí như trước. Tôi sẽ nhanh chóng cập nhật phản hồi của mình để làm rõ điểm này. Tôi thực sự đánh giá cao sự giúp đỡ của bạn.
tiết kiệm

1
Nó thực sự nghe giống như trục trặc tôi đang chạy trên MacBook. Nó dường như có liên quan đến việc tra cứu DNS theo một cách nào đó, cuối cùng tôi đã bỏ cuộc và chỉ sống với sự tạm dừng loooong trước khi kết nối và hy vọng nó sẽ được sửa chữa sau đó.
Bart Silverstrim

0

Kiểm tra nhật ký trên máy chủ. Nó thường ở /var/log/auth.log(Debian / Ubuntu) hoặc /var/log/secure(RedHat / CentOS). Bất kỳ vấn đề với kết nối thường được ghi lại ở đó.


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.