SSH anahtar parolalarını zorunlu kılsın mı?


9

SSH için şifre tabanlı girişleri kaldırmaya bakıyorum. Ancak, daha da kötüsü olduğu için şifresiz ssh tuşlarına izin vermek istemiyorum.

Yalnızca şifreleri olan SSH anahtarlarının bağlanabileceğinden nasıl emin olabilirim?

Bu yapılamazsa, SSH anahtar oluşturmayı merkezi olarak yönetmek ve kullanıcıların kendi anahtarlarını üretmesini ve / veya kullanmasını engelleme gibi alternatifler var mı? Sanırım PKI gibi bir şey.

Yanıtlar:


20

Özel anahtarda ayarlanabilen parola SSH sunucusuyla veya bu anahtarın bağlantısıyla ilgisiz . Özel anahtar için parola ayarlamak, yalnızca anahtar sahibinin, özel anahtarın çalınması durumunda üçüncü bir kişi tarafından uzak kabuğuna erişmesini önlemek için alabileceği bir güvenlik önlemidir.

Ne yazık ki, kullanıcıları özel anahtarlarını parolalarla güvenceye almaya zorlayamazsınız. Bazen, uzak SSH sunucusuna erişimi otomatikleştirmek için korumasız özel anahtarlar gerekebilir. Ben O iyi bir alışkanlıktır tavsiye böyle durumlar için kullanıcıların tavsiye etmektir karma known_hosts (saklanan dosyayı ~ / .ssh / known_hosts aşağıdaki komutu kullanarak, kullanıcı bağlandığı uzak konaklardan hakkında bilgi tutar),:

ssh-keygen -H -f ~/.ssh/known_hosts

Bu şekilde, bir üçüncü taraf korumasız bir özel anahtara erişim sağlamış olsa bile, bu anahtarın hangi uzak ana makineler için geçerli olduğunu bulmak son derece zor olacaktır. Tabii ki, bu tekniğin herhangi bir değere sahip olması için kabuk geçmişinin temizlenmesi zorunludur.

Ayrıca, her zaman aklınızda bulundurmanız gereken başka bir şey, SSH sunucunuzun yapılandırmasına (sshd_config) aşağıdakileri ekleyerek kökün uzaktan oturum açmasına izin vermektir:

PermitRootLogin no

Öte yandan, kullanıcıların kimlik doğrulaması için anahtarları kullanmasını engellemek yerine parolaları kullanmak istiyorsanız, sshd_config'nize aşağıdakileri eklemeniz gerekir :

PasswordAuthentication yes
PubkeyAuthentication no

8

Bu mümkün değil.

Kullanıcılar, anahtar dosyaları ile her şeyi yapabilir, örneğin siz oluşturmuş olsanız bile şifresiz hale dönüşebilir.


3

Yapamazsın. Kullanıcı anahtar verilere sahip olduktan sonra, parolayı kaldırmasını durduramazsınız. Kimlik doğrulamanızı gerçekleştirmenin diğer yollarını aramanız gerekir.


2

Kullanıcı anahtarlarının kontrolünü ele geçirmek için, tüm anahtarların, anahtarların okunabildiği ancak son kullanıcı tarafından değiştirilemediği bir kök dizinine taşınması gerekir. Bu, sshd_config güncellenerek yapılabilir.

Anahtar dosyalar denetlenen bir konuma geldiğinde, güncelleştirmek (ve parola ilkesini uygulamak) ve ardından anahtarların gerekli ana bilgisayarlara dağıtılması için bir yönetim arabirimine ihtiyacınız olacaktır. Ya kendiniz yuvarlayın ya da FoxT / Tectia gibi ürünlere göz atın.


... açık anahtarın faydalarını kıran
Patwie

0

Azaltıcı etkenlerden biri google kimlik doğrulayıcı PAM modülü eklentisini kullanmak olacaktır. Genellikle resmi paketlerde bulunur.

Bu, 2FA'yı akıllı telefonunuzdaki 6 haneli bir kodla kullanılabilir hale getirecektir.

Buradaki Talimatlar: Ubuntu 16.04'te SSH için Çok Faktörlü Kimlik Doğrulama Nasıl Kurulur


1
Bunun soruyu doğrudan cevaplamadığını, ancak (iyi) bir alternatif olduğunu belirtmelisiniz .
ceejayoz

1
@ceejayoz Haklısın. Cevabın başlangıcına bunun bir alternatif olduğunu açıkça belirtmek için "Bir hafifletme kullanmak .." ekledim.
Basil A

-1

Basitçe, SSH protokolünü, SSH istemcisinin veya SSH aracısının orijinal özel anahtarın şifrelenip şifrelenmediğini (belki de sunucu tarafı bir sorgu bile oluşturabileceğini) bildirmek için bir bayrak bildirmesi / ayarlaması için genişletmeniz yeterlidir. ve hatta anahtar şifrelendiğinde zaten parola ister.

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.