Birden Çok Makinede Aynı SSH Özel Anahtarını Kullanma


23

İki farklı Linux makinesinden erişmek istediğim bir Github deposu var.

İlk makine için, Github'ın SSH anahtarlarını üretme talimatlarını takip ettim ve ortaya çıkan ortak anahtarı Github'a ekledim. Bu müşteri iyi çalışıyor.

İkinci müşteri için /home/{user}/.ssh/id_rsadosyayı ilk müşteriden kopyaladım . Tüm yapmam gerekebileceğini düşündüm, ama bağlanmaya çalıştığımda 'İzin verilmedi (yayınlanmadı').

Neyi kaçırıyorum?

Yanıtlar:


32

Aynı SSH anahtarının birden fazla istemciden kullanılabilmesi gerekir. Farklı ağlar için farklı SSH anahtarlarım var ve aslında birkaç farklı bilgisayardan sorunsuzca kullandığım şifreli bir USB sürücüde saklanıyorlar.

İlk gelen tüm izinleri kontrol diye SSH dosya izinleri hakkında çok seçici /home/{user}aşağı tüm yol id_rsadosyasının kendisini.

SSH, grup veya dünya yazma izinlerini pek önemsemez, bu nedenle chmod go-wana dizininiz ve ~/.sshyeni başlayanlar dizininizden emin olun . Ayrıca, kullanıcının size ait olduğundan emin olurum chown ${USER}:${USER}.

SSH anahtarının kendisi için ben chmod 600...

İsterseniz benim benim SSH anahtarlarını yönetme konusunda ek bilgi var ettik cevap başka SSH soruya.


3
Bu izinlerdi. Oy verme yetkisi yok ama çok teşekkürler
Yarin

6

Github'un sonundan izin almıyorsanız, kopyalanan SSH anahtar dosyanızı değil, sistem varsayılanını alıyor olabilir. Bunun kolay bir yolu, bir ~/.ssh/configdosyayı mükemmelleştirmek ve içine aşağıdakileri koymaktır:

Host github.com
  Hostname      github.com
  User          git
  IdentityFile  ~/.ssh/yourkeyfile

Bu, SSH istemcinizi bu anahtarı yalnızca github.com için kullanmaya zorlar.

Bu yardımcı olur umarım.


2
Olumlu cevap veremem ama teşekkür ederim
Yarin

1

Bunun eski olduğunu biliyorum, ancak ortak anahtarı ikinci müşteriye de kopyalamanız gerektiğini vurguladığımı düşündüm

(veya ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub ile hesaplayın)

1'den]:

  1. Genel Anahtar Kimlik Doğrulama Yöntemi: "publickey"

    Sadece GEREKLİ kimlik doğrulama 'yöntem adı' "publickey"
    kimlik doğrulamadır. Tüm uygulamalar bu yöntemi desteklemelidir;
    Ancak, tüm kullanıcıların ortak anahtarlara sahip olmaları gerekmez ve çoğu yerel
    ilkenin
    yakın gelecekte tüm kullanıcılar için ortak anahtar kimlik doğrulaması gerektirme olasılığı yoktur .

    Bu yöntemle, özel bir anahtara sahip olmak
    kimlik doğrulama görevi görür . Bu yöntem
    , kullanıcının özel bir anahtarıyla oluşturulmuş bir imza göndererek çalışır . Sunucu, anahtarın
    kullanıcı için geçerli bir kimlik doğrulayıcısı olup olmadığını kontrol etmeli ve
    imzanın geçerli olup olmadığını kontrol etmelidir . Her ikisi de bekletilirse, kimlik doğrulama isteği
    kabul edilmelidir ; Aksi takdirde reddedilmesi GEREKİR. Sunucu
    başarılı olabilir sonra MAY ek bir kimlik doğrulaması gerektirdiğini unutmayın .

Ssh istemciniz kimlik doğrulamasını, genel anahtarı (yukarıda koyu olarak belirtilen imza) sunucuya göndererek başlatır. Ortak anahtar yetkili bir anahtarsa, sunucu müşterinize geri rasgele bir oturum kimliği gönderir. Müşteriniz daha sonra bu oturum kimliğini özel anahtarla kodlar ve sunucuya geri gönderir. Sunucu, genel anahtarı kullanarak bu oturum kimliğinin kodunu çözer ve orijinal oturum kimliğiyle eşleşiyorsa istemcinizi doğrular.

[1] [ http://www.openssh.org/txt/rfc4252.txtresini


0

Muhtemelen, ikinci istemcideki dosyanın iznini kopyalamamış olmanızdır.
Ancak özel bir anahtar özeldir , doğru yöntem ikinci müşteride yeni bir özel anahtar oluşturmak ve ardından genel anahtarını Github'a eklemektir.


Her kullanıcının ortak istemcileri arasında kullanıcı başına 1 keypair yapmayı planlıyordum. Ama her kullanıcının her müşterisi için bir anahtar çifti elimden geldiği gibi görünüyor bana ...?
Yarin

Her makinede her kullanıcı için aynı özel anahtarı kullanırsanız, tamam görünüyor. Sadece sc işaretini kullanarak -p flag ile kopyalarsanız tamam mı?
yarıçap
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.