.Ssh klasörünü / var / root / dizininden taşıyın


2

Web sitemi barındıran sunucuya kolayca giriş yapmak için bir ssh anahtarı kurmaya çalıştım: ssh-keygen -t dsa -b 1024. Anahtarlar (genel ve özel) /var/root/.ssh ki sevmiyorum çünkü mecburum sudo -s Özel anahtara erişmek için rsync'ten önce.

Ssh klasörünü taşımanın kolay ve güvenli bir yolu var mı /var/root/.ssh kullanıcı klasörüme, böylece root olmasam bile anahtarları kullanabilir miyim? taşımak için hangi konum? Taşınma için yeni başlayanlar için komut nedir? (mac os 10.10 için) Teşekkür ederim.

Yanıtlar:


2

Kök olarak bir DSA anahtarı oluşturduysanız, aşağıdakileri yapmak en güvenli olur (kendi kullanıcı olarak bir terminalden):

mkdir -p ~/.ssh
sudo cp -av /var/root/.ssh/id_dsa /var/root/.ssh/id_dsa.pub /Users/$USER/.ssh/
chown -v $USER: ~/.ssh/id_dsa*
chmod -v 600 ~/.ssh/id_dsa

Bu bir yaratacaktır .ssh homedir'deki yapılandırma dizini ( mkdir -p eğer yüksek sesler çıkarmaz ~.ssh zaten var ve hiçbir şey yapmıyor), genel ve özel anahtar dosyalarını root kendi evinize gidin, ardından dosyalarınız üzerinde doğru izinleri ve sahipliği ayarlayın.

Bu tahribatsız (bir şeyi hareket ettirmiyorsun, sadece kopyalıyorsun); Mutlu olduktan sonra, anahtar çifti uzaktaki ana makinenize normal giriş kullanıcısı olarak başarıyla bağlanmanıza izin veriyor sudo rm -fv /var/root/.ssh/id_dsa /var/root/.ssh/id_dsa.pub Bu aynı zamanda her iki hesaptaki diğer dosyaları etkilemez .ssh Klasör.


2

Normal kullanıcı olarak giriş yaparken Terminal'i açın, sonra çalıştırın.

mkdir ~/.ssh
sudo sh -c 'mv /var/root/.ssh/* /Users/'$USER'/.ssh/'
sudo chown $USER ~/.ssh/*
sudo chgrp $(groups | cut -d \  -f 1) ~/.ssh/*
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Bu, her zamanki gibi kullandığınız ssh anahtar çiftleri oluşturmadığınızı varsayar (ve bu nedenle zaten dosyalarınızda yoktur). ~/.ssh ).

Not: Bazı açıklamalar:

  • İlk sudo Kökün .ssh klasörünün içeriğini geçerli kullanıcının dizinine taşır. Bir deniz kabuğu çağırarak yapılması gerekenler ( sh -c ) çünkü joker karakter bölümü ( /var/root/.ssh/* ) sadece sonra çalışır sudo mevcut kullanıcıyı root olarak değiştirdi. $USER geçerli kullanıcının adını içeren bir ortam değişkenidir.
  • Üçüncü sudo Kopyalanan dosyaların grup sahipliğini geçerli kullanıcının birincil grubuna değiştirir. Bunun için uygun bir ortam değişkeni olmadığı için, groups (hangi kullanıcının ait olduğu tüm grupları listeler) kullanması gerekir. Lütfen sonraki iki boşluk karakterine dikkat edin. \.

Planı anlıyorum Patrix, ama 2 nolu hatta çalışamıyorum. xxx:~gilles$ bana şifremi sorar ve başarısız olur: Böyle bir dosya veya dizin yok. Eğer yazarsam sudo -sistemi: bash-3.2 # ve sonra listeleyebilirim (ls) /var/root/.ssh
Gilles

Ah, gerizekalı. Düzenlendi, lütfen tekrar deneyin.
nohillside

Başarılı yazı gibi görünüyor. Komutlarını kopyalamak için yaptığım ilk denemede, başarısız oldum çünkü sözdizimine bakmadım cut -d \ -f 1 2 gerekli boş alan olduğu yerlerde. Yarın test edeceğim ve temellerini anlamaya çalışacağım;).
Gilles

Bu çözümü kullandım, ancak şu (denenmemiş) nöronun cevabını takiben en azından kör acemi için daha güvenli görünüyor.
Gilles
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.