ssh không còn sử dụng ~ / .ssh / config


20

Tôi không thể ssh bất cứ điều gì tôi có thể. Sau khi đào một chút, tôi phát hiện ra rằng nó không đọc ssh config từ thư mục nhà của tôi.

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

Khi trên một máy tính giống hệt của một người bạn, nơi mọi thứ hoạt động như thế này:

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

Nó hoạt động sớm hơn và tôi không biết bất cứ điều gì tôi có thể làm để gây ra vấn đề này. Làm thế nào điều này có thể xảy ra, và làm thế nào để khắc phục nó?

Trong tài liệu liên kết được chỉ bởi tike, nó nói rằng

Do khả năng lạm dụng, tệp này phải có quyền nghiêm ngặt: đọc / ghi cho người dùng và không thể truy cập được bởi người khác.

Quyền của tôi là:

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

Tôi nghĩ rằng vấn đề có thể là với một sự nhầm lẫn về thư mục nhà. Khi tôi buộc tập tin cấu hình cục bộ, nó bắt đầu hoạt động và sau đó đột nhiên bắt đầu đọc từ/nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

Nhưng thư mục nhà của tôi dường như được đặt ok:

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
Tôi đã có thể giải quyết một vấn đề. Tôi đã sao chép nội dung của ~ / .ssh sang /nas/kuba/.ssh. Vì vậy, nó thực sự có vấn đề với ssh đột nhiên sử dụng sai thư mục nhà, có lẽ không thực sự là vấn đề ssh.
Kuba

Nhận xét cuối cùng đó sẽ là thông tin rất hữu ích để chỉnh sửa thành câu hỏi.
David Z

Đầu ra của bạn cho thấy bạn đang sử dụng DSA. Tôi sẽ tìm cách chuyển sang RSA, vì đó là cách tốt nhất / mới nhất và tôi tin rằng DSA đã bị hỏng.
phân tích

3
@Kuba Theo như tôi có thể nói sshbỏ qua HOMEbiến môi trường. Đó là thực tế xấu để bỏ qua HOME, có vẻ như đó là những gì sshlàm. Nếu nó không sử dụng HOME, cách duy nhất tôi biết là tìm kiếm nó từ uid. Nếu bạn có hai mục nhập /etc/passwdgiống hệt nhau uid, thì cả hai sẽ kết thúc bằng cùng một .ssh/configtệp ngay cả khi chúng có nhà khác nhau.
kasperd

1
@kasperd, đó nên là một câu trả lời. Đây là mẩu bánh mì duy nhất trên trang này giúp ích cho tình huống của tôi . Cảm ơn!
tự đại diện

Câu trả lời:


14

Bạn dường như bị mắc kẹt giữa người dùng cụ thể so với ssh_config toàn cầu.

Vui lòng kiểm tra cài đặt quyền của tệp cấu hình người dùng ( ~/.ssh/config) và tệp cấu hình toàn hệ thống của bạn ( /etc/ssh/ssh_config) để hiểu chi tiết hơn.

Bạn có thể đọc thêm về điều này ở đây . Thực tế, tất cả các tệp trong .sshthư mục dựa trên người dùng của bạn phải ở trên 600 và configtệp phải ở trên 644. Bạn có thể đặt tệp này bằng các lệnh sau trong thư mục chính của mình:

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

Vì vậy, tôi hiểu từ tài liệu rằng trước tiên nên đọc cấu hình từ thư mục chính của tôi và sau đó từ toàn cầu (/ etc / ssh / ssh_config) Câu hỏi là - tại sao nó lại cấu hình cục bộ của tôi?
Kuba

cập nhật câu trả lời ở trên
tike

Tôi đã thử. Không có gì thay đổi. Tôi đã cập nhật câu hỏi của tôi với nhiều chi tiết hơn.
Kuba

nếu bạn chưa thay đổi câu hỏi trên một cách quyết liệt trong khi chỉnh sửa: debug1: /Users/kuba/.ssh/config dòng 1: Áp dụng các tùy chọn cho * debug1: /Users/kuba/.ssh/config dòng 39: Áp dụng các tùy chọn cho cấu hình đọc của nó, và ký tự đại diện cấu hình của bạn dường như đang đóng vai trò. Tôi sẽ giữ tập tin cấu hình đơn giản để kiểm tra đầu tiên với cổng và máy chủ định nghĩa.
tike

Thật ra tôi đã thay đổi câu hỏi quyết liệt đến mức có lẽ tôi nên đóng nó lại. Có vẻ như ssh đang coi thư mục khác là thư mục nhà của tôi. Một cái gì đó không ~, cũng không phải $ HOME.
Kuba

3

kiểm tra quyền

ls -lsd ~/.ssh

ls -ls ~/.ssh/*

Nếu các quyền là xấu thì máy khách ssh sẽ không cố đọc từ nó


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config có vẻ như tôi là chủ sở hữu của tất cả bọn họ
Kuba

@Kuba thử với ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh tổng cộng 80 drwx ------ 9 kuba 1029 306 ngày 1 tháng 7 16:33. drwx ------ + 42 kuba 1029 1428 Ngày 1 tháng 7 16:33 .. -rw-r - r-- 1 kuba 1029 406 ngày 7 tháng 5 14:53 ủy quyền_keys -rwx ------ 1 kuba 1029 1528 15 tháng 5 13:07 config -rwx ------ 1 kuba 1029 1675 7 tháng 5 14:53 id_rsa -rwx ------ 1 kuba 1029 406 7 tháng 5 14:53 id_rsa.pub -rw-r-- r-- 1 kuba 1029 16049 ngày 22 tháng 5 09:36 được biết_hosts
Kuba

@ bạn có chắc không, thư mục người dùng gia đình không mở?
c4f4t0r

2
Cái đó + đằng kia ... không phải là ACL sao? Đó có thể là thủ phạm?
Jorge Suárez de Lis

0

Tôi gặp vấn đề tương tự và tôi đã có thể khắc phục bằng cách đặt cờ + x trên ~/.sshthư mục của mình (0700), đồng thời cài đặt 0600 ~/.ssh/config.


0

Để biết giá trị của nó, tôi đã gặp vấn đề tương tự và khắc phục nó bằng cách tạo ssh để tạo lại .sshthư mục (chỉ đổi tên sshvà thực hiện một số lệnh ssh) và sao chép các tệp cần thiết sau đó, với các quyền thích hợp. (cấu hình với 600).

Rõ ràng ssh trở nên đáng ngờ nếu thư mục .sshđược sửa đổi theo cách nó không chấp nhận ...


0

SSH sẽ không đọc cấu hình cục bộ nếu nó nằm trên hệ thống tệp được gắn NFS. Điều này đáng để kiểm tra vì tất cả các quyền đều có thể tốt và SSH (ít nhất là phiên bản 6.6) sẽ không cung cấp cho bạn bất kỳ dấu hiệu nào về lý do tại sao nó không đọc cấu hình người dùng. (Tuy nhiên, nó sẽ đọc nó từ một khối NFS nếu bạn sử dụng -Ftùy chọn.)


0

Tôi gặp vấn đề tương tự trên MacOs. Từ việc xem thông tin gỡ lỗi của một đăng nhập thủ công (ssh @), tôi phát hiện ra rằng rõ ràng ssh nghĩ rằng thư mục chính của tôi đã /srv/home/<userid>và đang tìm kiếm .sshthư mục trong đó, và bỏ qua thư mục trong đó/Users/<userid>/.ssh/

Có lẽ có một số việc phải làm với công việc thiết lập máy Mac theo một cách cụ thể, nhưng tôi khuyên bạn nên kiểm tra điều đó sshvà Hệ điều hành đồng ý về vị trí của thư mục chính;)


0

Như 'kasperd' đã chỉ ra trong nhận xét của anh ấy về câu hỏi, lưu ý rằng sshsẽ không nhất thiết phải tìm kiếm '$ {HOME} /. Ssh / config'. Như đã được tìm ra, điều quan trọng là phải đào sâu hơn và tìm hiểu vị trí của thư mục chính tại thời điểm đăng nhập và trước khi một HOME mới được xác nhận.

Gợi ý để xem qua đầu ra của ssh -xvvvF ~/.ssh/config serverrất sâu sắc trong việc giúp trả lời chính câu hỏi này. Khi tìm thấy chính mình trên một hệ thống có hai tên người dùng khác nhau có cùng UID trong tệp '/ etc / passwd', vấn đề này đã gặp phải. Hai người dùng có các thư mục HOME khác nhau được đặt trong '/ etc / passwd'.

Trong trường hợp như vậy, hóa ra là nếu một người đăng nhập với tư cách là người dùng thứ hai có UID trùng lặp trong tệp '/ etc / passwd', sshsử dụng thư mục chính của người dùng đầu tiên có UID phù hợp của người dùng đang chạy SSH chỉ huy.

Cấp, trường hợp sử dụng này là khá kỳ lạ, và sẽ không giúp ích cho hầu hết dân gian, nhưng nó thực sự đã xảy ra, và Q / A này đã giúp giải quyết vấn đề.


0

Điều này được gây ra bởi cài đặt quyền tập tin.

Kiểm tra quyền .sshdir và tập tin của bạn , cũng kiểm tra cài đặt quyền dir nhà của bạn.

Đối với tôi, tôi không muốn người khác xem các tệp cá nhân của mình, vì vậy tôi xóa xquyền của thư mục nhà của tôi. Điều này dẫn ssh để tìm các khóa được ủy quyền vào đường dẫn sai.

Một cách để khắc phục điều này là đặt một đường dẫn thẩm quyền khác /etc/ssh/sshd_config, ví dụ:

AuthorizedKeysFile .ssh / ủy quyền_keys / etc / ssh / ủy quyền

sau đó sao chép quán rượu của bạn vào /etc/ssh/authorized_keys, làm việc cho tô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.