Sshd'nin yapılandırma dosyasını yeniden okuması (ssh bağlantılarını öldürmeden)?


8

/etc/sshd_configMevcut ssh bağlantılarını öldürmeden ssh sunucusunun yapılandırma dosyasını ( ) yeniden okumasını nasıl sağlayabilirim ?

DÜZENLEME: Koşarsam kill -HUP <SSHD_PID>ben öldürmek bağlantıyı.


Bir kapatma sinyali göndermeyi denediniz kill -HUP <PID of sshd>mi? Göre man sshd: sshd rereads its configuration file when it receives a hangup signal, SIGHUP. (PID ile sshdbirlikte bulabilirsiniz ps -ef|grep sshd. Birden fazla sshdişlem varsa, HUPhepsine gönderin .)
jaume

(son düzenlememe bakın)
kjo

6
Evet, haklısınız, sshdaçık bir bağlantısı olan bir işlemi HUP yaparsanız , sshdsonlandırılır. Bununla birlikte, ana şebekeye bir HUP sinyali göndermek sshd, yani sshdher gelen bağlantı için yeni bir arka plan programı çatallayan üst öğe istenen etkiye sahip olacaktır. OS X'te olsa da, hiçbir ana var sshd: sshdbaşlatılır launchdaracılığıyla launchproxyseçeneği ile -ianlatıyor, sshdondan çalıştırılır o inetdzaman, ve talep üzerine başlatılan launchdistek alır. Bu kurulumla her SSH bağlantısı sshd, yapılandırma dosyasının en yeni sürümüyle yapılandırılmış yeni bir şekilde başlatılır .
jaume

Yanıtlar:


5

sshd, yapılandırma dosyasını "yeniden okumaz", kendini yeniden başlatır (bkz. man sshd (8)), ancak SIGHUP'u PARENT'e gönderdiyseniz çocuğu / bağlantıları öldürmemelidir. Linux / FreeBSD / vb. İle "olağan" larda olduğu gibi, 22 numaralı bağlantı noktasına bağlanan sshd'den bahsediyorsunuz. [MacOSX türü rotayı izlemenin istisnaları ve sistemademi nedenleri vardır]

Ancak MacOSX, bağlantı noktası 22'yi (10.10.4 makinemden) dinleyen ve işleyen olarak başlatıldı:

BlackYos:~ hvisage$ sudo lsof -i :22
Password:
COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd    1    root   57u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd    1    root   58u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd    1    root   62u  IPv6 0xdb59a664c78cd671      0t0  TCP *:ssh (LISTEN)
launchd    1    root   66u  IPv4 0xdb59a664c78d2e21      0t0  TCP *:ssh (LISTEN)
launchd    1    root   67u  IPv6 0xdb59a664c78cd671      0t0  TCP *:ssh (LISTEN)
launchd    1    root   68u  IPv4 0xdb59a664c78d2e21      0t0  TCP *:ssh (LISTEN)
ssh     1262 hvisage    3u  IPv4 0xdb59a664e59313b1      0t0  TCP blackyos:51628->hvs:ssh (ESTABLISHED)
sshd    1272    root    4u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1272    root    5u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1274 hvisage    4u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1274 hvisage    5u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)

Launchd, gelen her bağlantı noktası 22 bağlantısı için yeni bir sshd üreteceğinden, macosx üzerinde "yeniden başlatılması" veya sshd'yi dinlemek için farklı bağlantı noktalarından bahsedilmesi gerekebilecek lansmandır.

aşağıdakileri kontrol et:

BlackYos:~ hvisage$ sudo ps -ef |grep -i ssh
  501  1263     1   0  6:46PM ??         0:00.06 /usr/bin/ssh-agent -l
    0  1272     1   0  6:46PM ??         0:00.40 sshd: hvisage [priv]
  501  1274  1272   0  6:46PM ??         0:00.03 sshd: hvisage@ttys004
  501  1262   570   0  6:46PM ttys001    0:00.05 ssh -v hvs
  501  1303  1275   0  6:50PM ttys004    0:00.00 grep -i ssh
BlackYos:~ hvisage$

Yönlendiricime ssh'd ve sorunu göstermek için geri döndüm ve iki sürecin zaten bana ait olduğunu fark edeceksiniz. Bunu, root'a ait olan üçüncü "gerçek" sshd'yi fark edeceğiniz bir Linux sistemiyle (yönlendiricim) karşılaştırın:

hvisage@hvs:~$ ps -ef |grep -i ssh
root      4053     1  0 Jul11 ?        00:04:22 /usr/sbin/sshguard -i /var/run/sshguard.pid -l /var/log/auth.log -w /etc/sshguard/whitelist -a 40 -p 420 -s 1200
root     16244 30219  0 18:46 ?        00:00:00 sshd: hvisage [priv]
hvisage  16249 16244  0 18:46 ?        00:00:00 sshd: hvisage@pts/0
hvisage  16563 16250  0 18:52 pts/0    00:00:00 grep -i ssh
root     30219     1  0 Aug09 ?        00:00:00 /usr/sbin/sshd
hvisage@hvs:~$

1

Aşağıdaki satır önce yapılandırmayı kontrol eder ve diğer tüm işlemlerin tutulduğu ana işlemin PID'sini alır (Linux'ta test edilmiştir, zsh):

if /usr/sbin/sshd -t; then kill -HUP `ps aux | grep "/usr/sbin/sshd" | grep -v grep | awk '{ print $2 }'`; fi

MacOS üzerinde ÇALIŞMIYOR ... sshdİşlem yok .
Per Lundberg

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.