bash: /home/user/.ssh/authorized_keys: Böyle bir dosya veya dizin yok


30

Bir ssh anahtarı oluşturun:
Komut:

ssh-keygen -t rsa –P ""

Anahtarı yetkili anahtara taşıma:
Komut:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory

1
~/.ssh/authorized_keyskendi anahtarınız değil, bağlandığınız / güvendiğiniz diğer bilgisayarların anahtarlarıdır.
saiarcot895

Bazı uygulamalar kişinin kendi makinesine şifresiz ssh gerektirir.
Nehal J Wani,

Lütfen aynı soruyu Stack Exchange ağının birden fazla sitesine göndermeyin .
terdon,

Neden sahip olduğunuz anahtara güvenmeniz gerekiyor? Tam olarak ne yapmaya çalışıyorsun?
Braiam

Yanıtlar:


74

Sen oluşturmak zorunda .sshdizini ve authorized_keysdosyayı ilk kez.

  1. .sshDizini oluştur :

    mkdir ~/.ssh
    
  2. Doğru izinleri ayarlayın:

    chmod 700 ~/.ssh
    
  3. authorized_keysDosyayı oluştur :

    touch ~/.ssh/authorized_keys
    
  4. Doğru izinleri ayarlayın:

    chmod 600 ~/.ssh/authorized_keys
    

İzinler önemli! Doğru izinler olmadan çalışmaz!

Şimdi ekleyebilir genel anahtarı için authorized_keysdosyanın:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Sen kamu anahtarı eklemek zorunda bilgisayarınıza için authorized_keysbir dosyaya SSH Keys kullanarak erişmek istediğiniz bilgisayarda !


Terdon'un bahsettiği gibi bu komutu da kullanabilirsiniz:

ssh-copy-id user@host

Bu, id_rsa.pub( ~/.sshdizininizde) uzaktaki bilgisayarın authorized_keysdosyasına koyacaktır ve gerekirse .sshdizini ve authorized_keysdosyayı doğru izinlerle oluşturacaktır.


5
Her durumda, sadece catbunu istemezsiniz , bunun ssh-copy-idiçindir.
terdon

1
Vay, harika, ekledim.
Louis Matthijssen

@LouisMatthijssen Anahtarları uzak sunucuma kopyaladım. Genel anahtarın yetkili_ anahtarlarına eklendiğini nasıl onaylarım?
Aman

2

Uzak bir sunucuya kurmak için genel anahtarı bir e-posta ile göndermeniz durumunda:

1) SSH'yi sunucuya yerleştirin. PuTTY'yi Windows'ta kullandım.

2) Anahtarı ayarlayın:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

Anahtarı tam olarak kopyalamaya ve editör penceresinde yeni bir satıra yapıştırmaya dikkat edin. Tek bir satır kapladığını doğrulayın ve kaydedin.

chmod 600 ~/.ssh/authorized_keys

2

Yeterince itibarım olmadığından, bunu buraya ekliyorum. Louis Matthijssen'in cevabına ek olarak, oluşturduğunuz bir kullanıcı olarak ssh üzerinden giriş yapamıyorsanız,

ssh username@host

o zaman bu, /home/username/.ssh klasörüne eklemeniz gereken sahiplik izninin bulunmamasından kaynaklanabilir . Aynı sorunu yaşadım ve siz de bu izni verebilirsiniz:

chown -R username:username /home/username/.ssh

Bu muhtemelen basitçe dizini oluşturduğunuzda ve izinleri root olarak belirlediğinizden, ancak sunucuya erişmek istediğiniz kullanıcı adı olarak olmadığı için gerçekleşebilir.

Umarım bu birine yardımcı olur.


0

Deneyin

 touch $HOME/.ssh/authorized_keys

bu kullanıcının haklarıyla boş bir dosya oluşturmak için.

Bu dosya, bu kullanıcıyla ilk önce uzaktaki bir ana bilgisayara eriştiğinizde oluşturulur.


0

Bu, anahtarı oluştururken ssh-keygenbir dosya adı verirseniz de başarısız olabilir . Bir isim girdim my-ssh-file-nameve bu klasör /Users/MyUserNameyerine anahtarı yazdı .ssh. Dosya adını boş bırakırsanız, .sshbeklendiği gibi yazacaktır .

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.