sshd yapılandırmasını doğrula


19

Yapılandırmasını nasıl doğrulayabilirim sshd?

Örneğin, bu ayarların yapıldığından ve uygulandığından emin olmak istiyorum:

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

Dosyanın içeriğini manuel olarak doğrulamanın tek yolu mu sshd_configyoksa sshdemin olmak için sorgulayabilir miyim ?


2
Doğrulama ile ne demek istiyorsun? Yaptığınız yapılandırma değişikliğinin geçerli olduğundan nasıl emin olacağınızı mı soruyorsunuz? Geçerli bir yapılandırma olup olmadığını kontrol edecek tüy bırakmayan bir araç olup olmadığını mı soruyorsunuz ?
Zoredache

2
Sorunun belirsiz olduğunu düşünmüyorum: sadece bir yapılandırma seçeneği için hangi değerin olduğunu kontrol etmenin hiçbir yolu yoktur. Eğer #UseLogin nossd_config dosyasında görüyorsanız, UseLogin evet veya UseLogin hayır? Derleme sırasında değiştirilebilecek varsayılan değeri bulmak için kılavuza başvurmalısınız. Şimdiye kadar işe yaramaz bir sorudan ...
Xorax

Yanıtlar:


27

Bunu yapan komut satırı seçeneğiyle çağrılan genişletilmiş bir test modu vardır -T. Örneğin:

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes

Bu seçenek, 2008'den beri Portable OpenSSH'de bulunmaktadır, bkz. taahhüt e7140f2 . Bu, Temmuz 2008'de yapılan 5.1p1 ile yayımlandı, bkz. sürüm notları 5.1 , bu nedenle bugün desteklenen tüm OpenSSH sunucu kurulumlarında mevcuttur.


3
Ancak bunun varsayılan ayarları + /etc/ssh/sshd_configdosyadaki ayarları göstereceğini unutmayın . Dosyadaki ayarlar, sisteminize sshdbenzer bir şey /etc/init.d/ssh reloadveya eşdeğeriyle yeniden yükleninceye kadar henüz etkin olmayabilir .
mivk

2
mivk iyi bir nokta, ama bu kurs için hemen hemen eşit, çünkü bu tür komutları tam olarak değişiklik yaptıktan sonra, ama aslında uygulamadan önce kullanmamız tipiktir, çünkü ne olacağını doğrulamak istiyoruz. Örneğin apache2ctl -S, aynı şekilde davranır.
Josip Rodin

4

Bu, tüm sunucu tanımlarını dökümü etmeyecek olsa da, sen bir ayrıntılı hata ayıklama bayrağıyla sunucusuna bağlanırken deneyebilirsiniz: ssh -v user@server. Bu, sshd yapılandırmasında etkinleştirilen seçenekleri yansıtacak birçok bilgi verecektir.

Örneğin, -v anahtarıyla (anahtar imzalar, etki alanı ve IP adresleri bilerek gizlenmiş) bu bağlantının çıkışına bir göz atın :

OpenSSH_6.0p1, OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /home/claudio/.ssh/config
debug1: /home/claudio/.ssh/config line 13: Applying options for serv01
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to somedomain.com [185.113.29.221] port 22.
debug1: Connection established.
debug1: identity file /home/claudio/.ssh/id_dsa type 2
debug1: identity file /home/claudio/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
debug1: match: OpenSSH_5.9 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 3a:0d:b8:18:ca:67:4c:54:0f:c8:b2:1e:48:53:69:28
debug1: Host '[somedomain.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /home/claudio/.ssh/known_hosts:7
Warning: Permanently added the ECDSA host key for IP address '[185.113.29.221]:22' to the list of known hosts.
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/claudio/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Authentication succeeded (publickey).
Authenticated to somedomain.com ([185.113.29.221]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

Bundan izin verilen kimlik doğrulama yöntemlerini görebilirsiniz: publickey, şifre, klavye etkileşimli. Ayrıca bu sunucu tarafından dolaşıma izin verilmediğini ve kullanıcı claudio'nun ortak anahtarını kullanarak bağlanabildiğini de görebilirsiniz .

Daha fazla "v" harfi belirterek bilgi çıkış seviyesini artırabilirsiniz, ancak muhtemelen istediğinizden çok daha düşük düzeyde bilgi alabilirsiniz.


3

sshd yapılandırma genellikle aşağıdaki dosyada bulunur: /etc/ssh/sshd_config.

Çalışma zamanı yapılandırmasını sorgulamak için, sshd -Tistemcilerin ayarlarla eşleşmesini sınamanıza izin veren genişletilmiş sınama modunu kullanabilirsiniz .


1
Bunun sorduğu soruyu cevapladığını düşünmüyorum, ancak sorusu tamamen açık değil.
Zoredache

1
Görünüşe göre yapılandırmayı nasıl doğrulayacağını soruyor. Bildiğim kadarıyla, sshd'nin yapılandırmasını çalışma zamanında sorgulamanın bir yolu yoktur. Böylece, yapılandırma sadece bahsettiğim dosyada bulunabilir.
gparent

Dediğiniz gibi, soru anlamsız, bu yüzden belki OP dosyanın nerede olduğunu tam olarak bilmiyordum anladım.
gparent

4 yıl sonra beni kesinlikle geçerli bir nedenden ötürü küçümseyecekseniz, sağduyunuzu kullanın ve soru geçmişini kontrol edin, sonra bir düzenleme önerin.
gparent

@gparent orijinal soru biraz belirsiz ve yapılandırma dosyası yolunda bir yazım hatası vardı, bu nedenle sorudaki dizeyi düzeltmek için düzenleme işlevini kullanmalısınız; ve her iki durumda da doğrulama sorusunun cevabı yukarıda gösteriliyor
Josip Rodin

2

openssh sunucusuna başvuruyorsanız, çalışan bir sshd örneğinin yapılandırmasını sorgulamanın bilinen bir yolu yoktur. ne yapmak istediğinize bağlı olarak, sunucuyu yeniden başlatmadan önce geçerli olduğundan emin olmak için -t bayrağını sınamak için -t bayrağını kullanabilirsiniz, böylece başlatılmazsınız, esp. sunucuya bant dışı erişiminiz yoksa.


2

Diğer yanıtlar tarafından önerilen / etc / ssh / sshd_config dosyasına bakma sorunu, yapılandırmanın tamamını içermemesi gerektiğidir. Bu dosya, varsayılanları aşmak için ayarlamak istediğiniz yapılandırma değişkenlerinin değerlerini içerir ve gönderildiği gibi yorum olarak sshd'de yerleşik olan varsayılanları içerir.

Sevk edilen sürümün yerine özel bir yapılandırma dosyası yüklenirse, sshd içinde derlenen varsayılanları gözden kaçırırsınız ve özel bir derleme varsa, varsayılanlar sshd_config dosyasındaki yorumlarla eşleşmeyebilir.

Ayrıca, sshd'yi -f seçeneğiyle alternatif bir yapılandırma dosyasıyla çalıştırmak da mümkündür, böylece / etc / ssh / sshd_config içinde saklanan dosya geçerli ayarları yansıtmayabilir.

Bu, soruyu oldukça geçerli kılıyor ve bildiğim kadarıyla herhangi bir kesinlik ile cevaplanamıyor.


Tüm bunlar doğrudur, ancak varsayılan yapılandırmanın derlendiği bir paketten sshd'yi çalıştıracak sunucuların% 99'u için geçerli değildir.
Andrew Schulman

Cevabınız faydalı, ancak sorunun kesinlikle cevaplanması gerçekten mümkün, uzun süredir devam ediyor, lütfen aşağıdaki cevabımı görün.
Josip Rodin
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.