Kimlik doğrulamada kullanılan ortak anahtarı kaydetmesi için OpenSSH'i almak mümkün müdür?


27

Birkaç farklı kişinin tek bir hesaba giriş yapmasına izin verilen bir üretim sistemim var - hesap uygulama için değil, üretim sunucularında kişisel hesapları olmadığı için değil.

Denetim amacıyla, kimin ne zaman giriş yaptığını söyleyebilirim ve oturum açmak için SSH anahtarlarını kullandıkça bunu izlemek mantıklı görünüyor (izlemek için başka bir tanımlayıcı olmadığı için).

SSH, bir kullanıcının kimliğini doğruladığında, kullanıcı adını sistemin güvenlik günlüğüne kaydeder, ancak oturum açma sırasında yetkili ortak anahtarların hangisinin kullanıldığını günlüğe kaydetmez. ya da belki sadece bu anahtarla ilgili yorum?

Kullanılan işletim sistemi CentOS 5.6'dır, ancak diğer işletim sistemlerinde de mümkün olup olmadığını duymak isterim.

Yanıtlar:


33

LogLevel'i / etc / sshd / sshd_config içindeki VERBOSE değerine yükseltirseniz, kullanıcının kimliğini doğrulamak için kullanılan genel anahtarın parmak izini kaydeder.

LogLevel VERBOSE

sonra böyle mesajlar alırsın

Jul 19 11:23:13 centos sshd[13431]: Connection from 192.168.1.104 port 63529
Jul 19 11:23:13 centos sshd[13431]: Found matching RSA key: 54:a2:0a:cf:85:ef:89:96:3c:a8:93:c7:a1:30:c2:8b
Jul 19 11:23:13 centos sshd[13432]: Postponed publickey for user from 192.168.1.104 port 63529 ssh2
Jul 19 11:23:13 centos sshd[13431]: Found matching RSA key: 54:a2:0a:cf:85:ef:89:96:3c:a8:93:c7:a1:30:c2:8b
Jul 19 11:23:13 centos sshd[13431]: Accepted publickey for user from 192.168.1.104 port 63529 ssh2

Kullanabilirsiniz

 ssh-keygen -lf /path/to/public_key_file

Belirli bir ortak anahtarın parmak izini almak için.


2
Teşekkürler! Anahtar parmak izlerini authorized_keysdosyaya karşı onaylamam gerekiyor , bu yüzden yetkilendirilmiş anahtarların parmak izlerini yazdırmak için bu küçük yazıyı yaptım:(p="$(mktemp)";cat ~/.ssh/authorized_keys|while IFS="$(printf "\n")" read key; do echo $key > $p; ssh-keygen -lf $p; done; rm -f $p)
Guss

SSH'nin şimdi her giriş için anahtarı iki kez günlüğe kaydettiğini fark ettim - neden ve / veya bir kez giriş yapması nasıl bir fikir?
Guss

Neden, bu aşina olmadığım bir ayrıntı seviyesi. Bunu durdurabilirsin, muhtemelen kaynak kodla uğraşmadan.
user9517 GoFundMonica'yı

2
Bu konu alakalı görünüyor. Eşleşen anahtarı iki kez bulur: anahtarın kabul edilip edilemeyeceğini belirlemek için bir kez, ardından müşterinin sağladığı imzayı kontrol etmek için ikinci kez.
mpontillo

3

İnsanlarınız ssh-agent kullanıyorsa, bunu .bashrc'nize ekleyebilirsiniz:

SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log

Bu iyi bir fikir, ne yazık ki bunu günlüğe kaydetmek istememin nedenlerinden biri, günlüğe kaydetmek istediğim kullanıcılar için onaylanmış komutları kullanmam ve normalde bir bash kabuğu alamamam.
Guss

0

İçinde LogLevelparametre ile oynamayı deneyin sshd_config. Detaylar için bakınız man sshd_config


0

3
Sunucu Arızasına Hoşgeldiniz! Genel olarak sitedeki cevapların kendi başlarına durabilmelerini isteriz - Bağlantılar harika, ancak bu bağlantıyı keserse cevap hala yardımcı olmak için yeterli bilgiye sahip olmalıdır. Lütfen daha fazla ayrıntı eklemek için cevabınızı düzenlemeyi düşünün. Daha fazla bilgi için SSS bölümüne bakın .
slm
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.