Ssh anahtar dosya izin kontrolünü atla


29

Özel bir anahtar dosyası ve diğer hassas verileri içeren şifreli bir FAT birimine (uyumluluk için) sahibim.

Özel anahtarımı kullanarak sunucuma SSH üzerinden bağlanmak istiyorum, ancak tabii ki, FAT dosya iznini desteklemediğinden, izinlerimin çok açık olduğunu söyleyerek anahtarım yok sayılıyor.

Şimdilik 0600 izinli, başka bir yere sabit diskimde kopyalayıp kullanıyorum ve sonra güvenli bir şekilde siliyorum, ama bu bir acı.

Bu çok ssh / scp komut satırında izin denetimini atlamanın bir yolu var mı?

Düzenleme : Hassas: OS X'te bir TrueCrypt birimi oldu.

Çözümde: Aşağıdaki kabul edilen cevap sorunumu çözdü (Mac OS X ile TrueCrypt biriminde bulunan bir SSH anahtar dosyası kullanarak), ancak bu bir geçici çözüm. "Anahtar dosya izin kontrolünü atla" işleminin bir yolu yok gibi görünüyor.

Yanıtlar:


18

AFAIK, ana dosya izin kontrolünü ssh veya ssh-add ile atlamanın bir yolu yoktur (ve bunu adlandırılmış yöneltme veya benzeri bir şeyle kandıramazsınız). Ayrıca, aslında ssh'i kandırmak istemezsiniz, ancak sadece anahtar dosyalarınızı kullanabilmek için.

Aslında, TrueCrypt biriminin verilerinizi gizli tutması gerekiyordu, bu nedenle birimleri dünyaca okunabilir olarak (TrueCrypt'ın varsayılan davranışı) monte etmek gerçekten optimum değil. Eğer FAT formatlı bir birim kullanıyorsanız, Dan Carley'nin önerdiği gibi montaj seçeneklerini ayarlamalısınız.

Montaj seçenekleri henüz OS X için TrueCrypt tarafından doğru şekilde desteklenmese de (zaten komut satırındaki arayüzü ve man sayfasındaki montaj seçeneklerini kullanarak TC'yi başlatsanız bile - denenmiş olsa da), OS X, birim adına dayalı montaj seçeneği varsayılanlarını desteklemektedir. .

Kullanıcı kimliğinizi bilmeniz gerekir (bilgisayarın ilk / tek kullanıcısıysanız genellikle 501). "İd -u" ile alabilirsiniz.

Diyelim ki cilt adı "ÖZEL" (cilt adları büyük harflerle yazılmıştır) ve kullanıcı adınız 501'dir, tek yapmanız gereken bu satırı / etc / fstab dosyasına eklemektir:

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

Bu dosyayı oluşturmak / düzenlemek için root olmanız gerekir (varsayılan OSX kurulumunda mevcut değildir):

sudo vim /etc/fstab

Bir dahaki sefere birimi monte edince, izin 700 ve sahip kimliği 501 olur.

Bu aynı zamanda USB sürücülerle de çalışır (genellikle FAT olarak da formatlanmıştır).


mükemmel çalışıyor
benim

Bu yöntemle doğru izinleri almak için FAT biçimli birime ulaşamadım. Bununla birlikte, "Mac OS Extended" seçilmesi ve diğer işletim sistemlerine bağlanma seçeneğinin seçilmesi izinleri chmod ile ayarlamama izin veriyor.
emptyset

Bu harika çalıştı. Güvenli birimi bağladığımda, giriş dizinimdeki belirli noktalara bağlarım. 'None' değerini takma noktasının açık adıyla değiştirmek zorunda olduğumu öğrendim.
Alec Geek,

1
Bu /etc/fstab, daha yeni OS X'te dosya olmadığında bile çalışır . Sadece etc/fstabyukarıdakilerle yeni bir dosya oluşturun
iggie

33

Stdin'den anahtar eklemek benim için çalıştı:

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

1
Bu neden bir oy kullanmadı? montaj olmadan kutudan çıkıyor ve yine de bir ssh-ajanı kullanıyorsunuz, değil mi?
pscheit

4
cazibe gibi çalışır - kabul edilen cevabı e
hdave

1
Bu beni içeri soktu. WSL Ubuntu'yu kullanmak. Teşekkürler!
mydoglixu

7

Çılgın bir geçici çözüm olarak, özel anahtarınızı içeren bir ext2 biriminin disk görüntüsünü oluşturabilir ve bunu bir döngü aygıtı olarak bağlayabilir, ardından ssh anahtarınızı buradan kullanabilirsiniz.

1 MB boş dosya oluşturun:

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

Ext2 formatlayın (bir cihaz olmadığını söylediğinde Y tuşuna basın):

mke2fs diskimg

Bir yere monte et (kök olarak):

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

Artık izinleri ayarlayabileceğiniz küçük bir ext2 dosya sistemine sahipsiniz. Takmak için bir komut dosyası yazabilir ve bu izinlerin, hangi sistemde olduğunuza bağlı olarak doğru UID / GID'ye sahip olduğundan emin olabilirsiniz (çünkü UID'ler uyumsuz olabilir). Ayrıca çalışmak için sudo / root erişimi gerektirir.


Hiçbir basit seçenek yoktur gibi görünüyor
Bana instanceof

1
bu çok yanlış - ama çok havalı :)
warren

1
@ warren: 'Çılgın' ile önsöz yaptım. :-D
Kyle Smith

2

Ya eklemek StrictModes noiçin /etc/ssh/sshd_config(ve sshd yeniden yükle / yeniden başlat)?

edit: oops, bu seçenek sadece sunucu tarafında: /


1

Doğru hatırlıyorsam, ssh-agentanahtar izinlerini kontrol etmiyor. Yani bu işe yarayabilir:

[-S "$ SSH_AUTH_SOCK"] || eval $ (ssh aracısı)
ssh-add path / to / id_rsa

Bilginize, bu çalışmıyor. ssh-adddosya izinlerini kontrol eder.
Kyle Smith

0

Bağlama seçeneklerinizi ( umask, uidve gid) uygun şekilde değiştirebilir misiniz?


AFAIK Hayır, bu bir TrueCrypt birimi, benim tek seçeneğim salt okunur olarak monte etmektir ve ssh hala 0777'den şikayet ediyor
benim için de
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.