Macun kullanan bir linux makineye (centos 6.4) bağlanırım. Macunu yalnızca bir tür protokol kullanacak şekilde ayarlayabilmemin dışında, akımın ssh bağlantı sürümünü (SSH1 veya SSH2) nasıl bulabilirim?
Macun kullanan bir linux makineye (centos 6.4) bağlanırım. Macunu yalnızca bir tür protokol kullanacak şekilde ayarlayabilmemin dışında, akımın ssh bağlantı sürümünü (SSH1 veya SSH2) nasıl bulabilirim?
Yanıtlar:
Bunun eski bir soru olduğunu biliyorum, ancak karşılaştığımdan beri, alternatif bir yolla göndereme dayanamadım.
Gibi cstamas önerdi kullanabileceğiniz ssh -v localhost
sadece ilerleme mesajı ayıklama gösterecek olan mod ayrıntılı üzerinde kendini 127.0.0.1 ssh. Evet, bu işlemle iletişimin tepesine bakabilir ve şu anda çalıştırmakta olduğunuz SSH sürümünü alabilirsiniz.
Ancak ssh man
sayfayı okursanız -V
ssh seçeneğini daha faydalı bulacaksınız . Çıkarılanlar ssh adam sayfası :
-V Sürüm numarasını görüntüleyin ve çıkın.
-v Ayrıntılı mod. Ssh'ın ilerleyişi hakkında hata ayıklama mesajları yazdırmasına neden olur. Bu hata ayıklama bağlantı, kimlik doğrulama ve yapılandırma sorunları için yararlıdır. Birden çok-v seçeneği ayrıntı düzeyini artırır. Maksimum 3.
Bu yüzden basitçe yapmanın ssh -V
ve buna benzer bir şey almanın daha iyi olacağını düşünüyorum :
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Bu yardımcı olur umarım.
Macun oturumu, oturum açma, "SSH paketleri ve ham veri" radyo düğmesini seçin. Günlük dosyasını istediğiniz bir yere putty.log olarak seçin. Bağlantıyı yap. Görmelisin:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
SSH-2.0'ın ne anlama geldiğiyle ilgili ayrıntılar için aşağıya bakın.
Diğer Yöntemler Telnet istemcisini kullanmayı da deneyebilirsiniz ancak 22 numaralı bağlantı noktasını işaret edin:
telnet test1 22
Bağlandığınızda göreceksiniz:
192.168.144.145 çalışıyor ... Test1'e bağlandı. Çıkış karakteri '^]'. SSH-2.0-OpenSSH_5.3
Son satır, aranacak satırdır:
SSH-2.0-OpenSSH_5.3
Bunun SSH-2.0
iyi olduğunu söylüyorsa , bağladığınız ssh sunucusu yalnızca SSH Protokolü Sürüm 2'yi destekler. SSH V1 Protokolü İstemcilerinden gelen bağlantıları desteklemez.
Ancak görüyorsanız:
SSH-1.99-OpenSSH_5.3
Ardından, sunucu ucunun hala SSL Protokolü Sürüm 1'i desteklediği anlamına gelir. sshd_config
Dosyasında şöyle bir şey vardır :
Protocol 1,2
Protokol 1 savunmasızdır ve kullanılmamalıdır.
Yani bunu düzeltmek için. Uzak sunucunun 22 numaralı bağlantı noktasına telnet yaparken SSH-2'yi görürseniz, sunucu Protokol 1'i desteklemediğinden yalnızca ssh Protokolü Sürüm 2'yi kullanabilirsiniz.
Yukarıdaki cstamas cevaplarına göre, -v bayrağı bir çizgi gösterecektir:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
veya:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
version 2.0
Orada görmek istiyorsun
Bunu yerel makinenizdeki netcat kullanarak oldukça hızlı bir şekilde alabilirsiniz, örneğin:
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
Bunu daha çok seviyorum:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
Buradaki fayda, bağlantı açık tutulmadığı için programlı olarak yapılabilmesidir. Python için deneyin:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
Bildiğim tek yöntem, birinin ssh log girişlerini görüntülemek için yeterli ayrıcalıklara sahip olmasını gerektiriyor /var/log/auth.log
.
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
SSH_CONNECTION
Değişkenin birinci ve ikinci alanları, bağlantımın kaynak IP ve kaynak portunu gösterir. Bu grep
değerleri alarak /var/log/auth.log
, ssh bağlantımın doğrulanmasından gelen günlük girişini bulabilirim.
$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2
Bu günlük girişi bana şu anki bağlantımın ssh2 protokolünü kullandığını söylüyor. Tabii ki, ssh oturumu birkaç gündür açıksa, kayıt girişi /var/log/auth.log.0
veya daha eski bir auth.log
dosyada olabilir.