Soru Başka bir kullanıcı için ssh anahtarını nasıl yaratıyorsunuz?


Başka bir kullanıcı için bir ssh anahtarı oluşturmaya çalışıyorum. Kök olarak giriş yaptım. Sadece ssh-keygen tarafından oluşturulan dosyaları düzenleyebilir ve root'u istediğim kullanıcıya değiştirebilir miyim?


76
2017-10-22 19:24


Menşei


Kullanıcının anahtarını oluşturursanız, özel anahtarı almanın güvenli bir yöntemine sahip olmanız ve kullanıcıya şifreli bir ifade almanız gerekir. Kullanıcı anahtarı oluşturduğunda çok daha iyi ve sonra size sadece ortak anahtarı e-posta. - Iain
Ama bu kadar zor değil, şifre girişlerine izin vermiyor musunuz? Sadece anahtar olduğumda ve yeni bir kullanıcı kurarsam, anahtarlarını kurmak için giriş yapamazlar. - LVLAaron


Cevaplar:


Bunu yapabilirsin ssh-keygenBununla birlikte, özel anahtarın kullanıcıya özel olması gerektiğini unutmayın, böylece kullanıcının şifresi kadar güvenli olmasını sağlamak için çok dikkatli olmalısınız. Ya da daha güvenli, kullanıcı ilk girişte bunu değiştirmek için gerekli olması muhtemel değildir.

ssh-keygen -f anything Geçerli dizinde iki dosya oluşturur. anything.pub Kullanıcının ekleyebileceği ortak anahtardır ~/.ssh/authorized_keys herhangi bir hedef sunucuda.

Az önce diğer dosya anything Özel anahtardır ve bu nedenle kullanıcı için güvenli bir şekilde saklanmalıdır. Varsayılan konum ~username/.ssh/id_rsa (burada adlandırılmış id_rsarsa tuşları için varsayılan olan). Unutmayın ki .ssh dizin, kullanıcı tarafından okunabilir veya yazılabilir olamaz ve kullanıcının giriş dizini kullanıcı tarafından yazılabilir değil. Aynı şekilde, izinler özel anahtarda da sıkı olmalıdır: Sadece kullanıcı için okuma / yazma ve .ssh dizini ve özel anahtarın kullanıcıya ait olması gerekir.

Teknik olarak anahtarı istediğiniz yere saklayabilirsiniz. İle ssh -i path/to/privatekey bağlanırken bu konumu belirtebilirsiniz. Yine, uygun sahiplik ve izinler kritiktir ve doğru olmadıklarında ssh çalışmayacaktır.


74
2017-10-22 19:35



Özel (!) Anahtar olduğunu belirtmek için +1 - mailq
Kullanıcının gerçek bir kişi olduğunu varsayıyorsunuz. Oturum açma, yardımcı görevleri gerçekleştirmek için kullanılan etkileşimli olmayan bir kullanıcıysa (ör. Uzak sunucularda maine komut dosyalarını çalıştıran çalıştırıyorsa), evet, muhtemelen bu kullanıcının anahtarını el ile oluşturabilirsiniz. Elbette, bunun kendi güvenlik sonuçları var, ama bu başka bir hikaye. - Rilindo
@Rilindo ssh -i Ayrıcalıklı olmayan bir süreç için özel bir anahtara, birkaç otomatik rsync yedekleme işleminden daha fazlasını nasıl ele alacağım. :) - Shadur
"Yapmamanız gerek" diyen bu tür bir cevabı beğenmiyorum ama soruyu cevaplamayın. Bu, orijinal soru bağlamında doğru ve yardımcı olabilse de, başka insanlar da farklı bir durumda aynı soruna sahip olabilirler. "ssh anahtarları başka bir kullanıcı için asla oluşturulmamalıdır": Bu basit durumda doğrudur. Ancak, aynı fiziksel kişinin birden fazla kimliğini düşünün, örneğin. Birden fazla sistemde birden çok hesap olabilir, bunların hepsi anahtar üretmenize veya özel anahtarları uygun şekilde korumanıza izin vermez. - Gustave
usersveya user's - User


Orada SSH anahtarlarında kullanıcı bilgisi yok.

Ortak anahtardaki son alan bir yorum Yap (ve aşağıdaki komutu çalıştırarak değiştirilebilir ssh-keygen -C newcomment).

Başka bir kullanıcı için bir anahtar oluşturmak için özel bir şey yapmaya gerek yok, sadece doğru yere koyun ve izinleri ayarlayın.


109
2017-10-22 19:55



Bu doğru cevap. - sebnukem
Sadece test edip onaylıyorum, sadece bir yorum değil, kaldırılabilir ve tuşlar hala çalışıyor. Her zaman önemli olduğunu düşündüm! Doğru cevabı verdiğiniz için teşekkürler. Yukarıdaki yorumlar gibi, diğer kullanıcılar için anahtarlar oluşturmam için bir nedenim var, ama neden olduğunu söyleyemem, bu yüzden tartışmasız. - FreeSoftwareServers


Kullanarak kullanıcı ol su ve anahtarı o kullanıcı olarak çalıştırın:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



DSA'yı neden belirtin? - Ram
Whoops, alışkanlık gücü. Güncelleme yapalım. - Rilindo
rsa kullanmalısınız (veya eliptik eğri varyantlarından biri olabilir). dsa, güvenli olmayan ana boyutlarla sınırlıdır. rsa1, artık kimsenin kullanılmaması gereken ssh1 için eski bir formattır. - Peter Green
Benim joeuser bir hizmet kullanıcısı, bu yüzden onlar gibi giriş yapamıyorum. Bir hizmet kullanıcısının (sadece işlemleri çalıştıran) ssh anahtarına sahip olmasına nasıl izin verebilirim? - Jonathan
@JonathanLeaders Bu kullanıcı olduğunda kullanıcı için kabuğu belirtebilirsiniz. Böyle bir şey: `` [root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: FTP Kullanıcı: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: uyarı: / var / ftp dizinini değiştiremezsiniz: Böyle bir dosya veya dizin yok Bu hesap şu anda mevcut değil. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


Görüldüğü gibi İşteSSH anahtarını eklemek istediğiniz kullanıcının klasörünün okuma izinlerini değiştirmek için chmod kullanabilirsiniz.

vim /home/username/.ssh/authorized_keys

Ardından, anahtarı yalnızca bu dosyanın altındaki yeni bir satıra yapıştırın.


5
2018-01-09 23:42



Link öldü ... - Nyxynyx