Bỏ qua kiểm tra quyền tập tin khóa ssh


29

Tôi có một khối lượng mã hóa FAT (để tương thích) có chứa một tệp khóa riêng và dữ liệu nhạy cảm khác.

Tôi muốn kết nối với máy chủ của mình thông qua SSH bằng khóa riêng của mình, nhưng tất nhiên, vì FAT không hỗ trợ quyền truy cập tệp, nó bỏ qua khóa của tôi nói rằng quyền của nó quá mở.

Vì vậy, hiện tại tôi đang sao chép nó ở một nơi khác trên ổ cứng của mình với 0600 quyền, sử dụng nó và sau đó xóa nó một cách an toàn, nhưng đó là một nỗi đau.

Có cách nào để bỏ qua kiểm tra quyền trên dòng lệnh rất ssh / scp này không?

Chỉnh sửa : Chính xác: đó là một khối TrueCrypt trên OS X.

Về giải pháp: Câu trả lời được chấp nhận dưới đây đã giải quyết vấn đề của tôi (sử dụng tệp khóa SSH nằm trên ổ đĩa TrueCrypt với Mac OS X), nhưng đó là một cách giải quyết. Có vẻ như không có cách nào để "bỏ qua kiểm tra quyền truy cập tệp chính".

Câu trả lời:


18

AFAIK, không có cách nào để bỏ qua kiểm tra quyền keyfile bằng ssh hoặc ssh-add (và bạn không thể lừa nó bằng ống có tên hoặc như vậy). Bên cạnh đó, bạn không thực sự muốn lừa ssh, mà chỉ để có thể sử dụng các tệp chính của mình.

Thật vậy, âm lượng TrueCrypt được cho là giữ dữ liệu của bạn ở chế độ riêng tư, do đó việc gắn các ổ đĩa là có thể đọc được trên thế giới (hành vi mặc định của TrueCrypt) không thực sự tối ưu. Nếu bạn đang sử dụng âm lượng được định dạng FAT, bạn thực sự nên điều chỉnh các tùy chọn gắn kết, như Dan Carley đề xuất.

Mặc dù các tùy chọn gắn kết chưa được TrueCrypt hỗ trợ chính xác cho OS X (ngay cả khi bạn khởi chạy TC bằng giao diện dòng lệnh và các tùy chọn gắn kết từ trang man - đã thử), OS X không hỗ trợ mặc định tùy chọn gắn kết dựa trên tên âm lượng .

Bạn cần biết id người dùng của mình (thường là 501 nếu bạn là người dùng đầu tiên / duy nhất của máy tính). Bạn có thể lấy nó với "id -u".

Giả sử tên âm lượng của bạn là "RIÊNG TƯ" (tên âm lượng được viết hoa) và uid của bạn là 501, tất cả những gì bạn phải làm là thêm dòng này vào / etc / fstab:

LABEL=PRIVATE none msdos -u=501,-m=700

Bạn cần phải root để tạo / chỉnh sửa tệp này (nó không có trong cài đặt OSX mặc định):

sudo vim /etc/fstab

Lần tới khi bạn lắp âm lượng, nó sẽ có quyền 700 và id chủ sở hữu 501.

Điều này cũng hoạt động với các ổ USB (cũng thường được định dạng bằng FAT).


hoạt động hoàn hảo
ví dụ như tôi

Tôi không thể có được một âm lượng định dạng FAT để có được quyền phù hợp với phương pháp này. Tuy nhiên, chọn "Mac OS Extended" và chọn tùy chọn để gắn trên các hệ điều hành khác cho phép tôi đặt quyền với chmod.
trống

Điều này làm việc tuyệt vời. Khi tôi gắn âm lượng an toàn, tôi gắn vào điểm cụ thể trong thư mục nhà của mình. Tôi thấy rằng tôi phải thay thế giá trị của 'none' bằng tên rõ ràng của điểm gắn kết.
Alec the Geek

1
Điều này hoạt động ngay cả khi không có /etc/fstabtệp nào trên OS X mới hơn. Chỉ cần tạo một etc/fstabtệp mới với phần trên
iggie

33

Thêm khóa từ stdin làm việc cho tôi:

cat /path/to/id_rsa | ssh-add -k -

1
Tại sao điều này không có một upvote? nó hoạt động ngoài hộp mà không cần gắn và dù sao bạn cũng đang sử dụng một tác nhân ssh, phải không?
pscheit

4
hoạt động như một cơ duyên - nên câu trả lời được chấp nhận
hdave

1
Điều này đã cho tôi vào. Sử dụng WSL Ubuntu. Cảm ơn!
mydoglixu

7

Như một cách giải quyết điên rồ, bạn có thể tạo một hình ảnh đĩa của một ổ đĩa ext2 chứa khóa riêng của bạn và gắn nó như một thiết bị lặp, sau đó sử dụng khóa ssh của bạn từ đó.

Tạo một tệp trống 1MB:

dd if=/dev/zero of=diskimg bs=1024 count=1024

Định dạng ext2 (Nhấn Y khi nó nói nó không phải là thiết bị):

mke2fs diskimg

Gắn kết nó ở đâu đó (dưới dạng root):

mount -t ext2 -o loop diskimg /my/path/to/diskimg

Bây giờ bạn có một hệ thống tập tin ext2 nhỏ mà bạn có thể đặt quyền trên. Bạn có thể viết một tập lệnh để gắn nó và đảm bảo rằng các quyền đó có UID / GID phù hợp dựa trên bất kỳ hệ thống nào bạn đang sử dụng (vì các UID có thể không khớp). Nó cũng yêu cầu truy cập sudo / root để làm việc.


có vẻ như không có lựa chọn nào đơn giản hơn
ví dụ như tôi vào

1
điều đó thật sai lầm - nhưng rất tuyệt vời :)
warren

1
@warren: Tôi đã mở đầu nó bằng 'crazy'. :-D
Kyle Smith

2

Còn việc thêm StrictModes novào /etc/ssh/sshd_config(và tải lại / khởi động lại sshd) thì sao?

chỉnh sửa: rất tiếc, tùy chọn này chỉ ở phía máy chủ: /


1

Nếu tôi nhớ lại chính xác, ssh-agentkhông kiểm tra các quyền chính. Vì vậy, điều này có thể làm việc:

[-S "$ SSH_AUTH_SOCK"] || $ eval (đại lý ssh)
ssh-thêm đường dẫn / đến / id_rsa

FYI, Điều này không hoạt động. ssh-addkhông kiểm tra quyền truy cập tập tin.
Kyle Smith

0

Bạn có thể sửa đổi gắn kết của bạn tùy chọn ( umask, uidgid) để phù hợp?


AFAIK Không, đó là khối lượng TrueCrypt, tùy chọn duy nhất của tôi là gắn kết nó ở chế độ chỉ đọc và ssh vẫn phàn nàn là 0777
ví dụ như tôi vào
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.