EC2: bir örnek için birden fazla ssh tuşu mu?


12

Bir EC2 örneğinde SSH için birden fazla özel anahtar oluşturmak mümkün mü? Bunun için en iyi uygulama nedir? SSH'yi sunuculara ihtiyaç duyan birden fazla kullanıcımız var ve bir anahtarı dağıtmak iyi çalışmıyor. Bu, anahtarı değiştirip yeniden dağıtmadığımız sürece kullanıcıları sunucuya SSH'yi kaldırabilmemize izin vermez.



Bir ekip için SSH anahtar yönetimi yaparken, muhtemelen Userify veya SSH UKM gibi özel bir araca bakmak en iyisidir (Feragatname: Userify için çalışıyorum).
Jamieson Becker

Yanıtlar:


5

Kesinlikle; ilgili tüm ortak anahtarları resme yerleştirmeniz yeterlidir. SSH anahtarlarını yönetmek için bir yapılandırma yönetim sistemi kullanmayı tercih ederim; bu şekilde bir kullanıcının çalışan sistemlerde bile erişimini iptal etmek oldukça önemsizdir. Ayrıca çok daha fazlası var ... "yaratıcı" diyelim ki ... SSH anahtarlarını diğer kimlik bilgileri gibi merkezileştiren tüm SSH anahtarlarınızı LDAP'de depolamak gibi.


2
SSH anahtarlarını LDAP'de saklamaya başladığınızda Kerberos'u öğrenmenin zamanı geldi.
84104

1
Kerberos'u konuşlandırdım; kişisel olarak, bunun bir problem arayışında bir çözüm olduğunu ve bu konuda oldukça titiz ve sinir bozucu bir çözüm olduğunu düşünüyorum.
womble

2
@Ash: Sorular yorumlarda değil sorularda gider.
womble

1
Yukarıdaki yorumu görmezden gelecektim - ancak siteye yeni gelen herkes için, verilen cevabın, açıklamaların veya yanlış anlamaların uygulanmasıyla ilgili bir yorumunuz varsa, bunun açıkça belirtilmesi gerektiğini açıkça belirtmeliyim. OP'de meydana gelebilecek herhangi bir karışıklığı açıklığa kavuşturmak için yanıtta düzenlemeler yapabilmesi için.
Mazatec

2
Hayır, cevap başlangıçta sorulan soruyu ele almıyorsa yorumlarda netleştirici sorular sormalısınız. Bir yanıtın içeriğine göre yeni bir soru sormak istiyorsanız, yeni bir soru sormak için sayfanın sağ üst köşesindeki büyük "Soru Sor" düğmesini kullanmalısınız. Bu bir Soru-Cevap sitesidir, tartışma forumu değildir.
womble

6

Standart ssh mekanizmalarını da kullanabilirsiniz. En iyi yaklaşım, kullanıcı ssh-keygenanahtar çiftini oluşturmak için makinelerinde çalışırsa olacaktır . Daha sonra size ~/.ssh/id_rsa.pub(veya seçilen algoritmaya bağlı olarak id_dsa.pub) gönderirler ve içeriğini .ssh/authorized_keys, erişebilmeleri gereken kullanıcı hesabının ana dizinindeki hedef ana bilgisayara eklersiniz . Dosyada birden fazla anahtar olabilir. Her satıra bir tane. Ve hepsi bu! Aynı ortak anahtar (id_rsa.pub) herhangi bir sayıda ana bilgisayarda kullanılabilir - her zaman kullanıcıyı tanımlar.

Bunu başka bir şekilde de yapabilirsiniz - ssh-keygen'i çalıştırın ve kullanıcıya ~ / .ssh / id_rsa (veya id_dsa) gönderin. Kullanıcı dosyayı ~ / .ssh / id_rsa dizinine kaydeder. Bu dosyanın izinlerini 600 (-rw -------) olarak değiştirmeyi unutmayın, aksi takdirde ssh kabul etmez. Özel anahtar muhtemelen e-posta üzerinden dağıtıldığından, bu açıkça daha az güvenlidir.

PuTTY'de PuTTYgen ile de yapılabilir.


1

Daha basit bir yol aşağıda gösterildiği gibidir.

Linux / Mac kullanıcıları için:

  1. Ortak ve Özel anahtarlar oluşturmak için aşağıdaki komutu kullanın: $ ssh-keygen -t rsa -b 4096

  2. Genel anahtarı S3 grubunuzdaki bir klasöre yükleyin. Örneğin: S3> MyBucket> Anahtar çifti

  3. Özel anahtarınızı kaydedin ve güvenliğini sağlayın.

Windows kullanıcıları için:

  1. Anahtarları oluşturmak için puttygen kullanın.
  2. SSH anahtarları oluşturmak için DigitalOcean'i takip edin .
  3. Genel anahtarı S3> MyBucket> Keypair'e yükleyin
  4. Özel anahtarınızı kaydedin ve güvenliğini sağlayın.

Herhangi bir Linux AMI'nın başlatılması sırasında aşağıdaki adımlar önemlidir.

  1. IAM rolünün AmazonS3FullAccess ilkesiyle oluşturulan bir rolü olduğundan emin olun. Bu, örneğin S3 gruplarına erişmek için rol almasını sağlar. Bu, S3'teki genel anahtarları okumak ve bunları kullanıcı profiline kopyalamak için gereklidir

  2. Örnek ayrıntılarını yapılandırma> Gelişmiş Ayrıntılar (Metin olarak) bölümündeki kullanıcı verileri bölümüne aşağıdaki kodu ekleyin:

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Bu kurulum, Kullanıcı1 ve Kullanıcı2'yi oluşturur ve bunları sudo kullanıcılarına ekler . AWS s3 cp komutu kopyalar kullanıcıların kendi S3 klasöründen ortak anahtarlar .ssh/authorized_keys path. Son bölüm, parolalara gerek kalmadan komutları yönetici olarak çalıştırmaktır.

Burada önerilebilecek birçok güvenlik iyileştirmesi vardır. Bu örnekte açıkça kullanılmasa da, S3 grup erişimini belirli bir gruba sınırlamak ve sudo'da şifre kullanımını devre dışı bırakmanın güvenlikle ilgili etkilerini bilmek, vurgulanabilecek birkaç şeydir. Bunları özel ihtiyaçlarınıza göre akıllıca kullanın.

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.