Geçerli bağlantının geçerli ssh protokolü sürümünü nasıl bulabilirim?


35

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?


Yaptığın araştırmayı göstermene yardımcı olabilir
Drew Khoury

@DrewKhoury Buna bir cevap bulmak için sadece google ile çalıştım, ancak bununla ilgili sonuç bulunamadı. Hiç kimse mevcut bağlantı (kullanımda) protokolünü (ssh1 veya ssh2) nasıl görebileceğimi açıklamıyor.
koro

Yanıtlar:


46

Bir kere sen dediğinde:

ssh -v localhost

Sunucunun tam sürümünü size söyleyecektir.


4
Bu mevcut bağlantı türünü gösteriyor görünmüyor.
codiac

18

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 localhostsadece 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 mansayfayı okursanız -Vssh 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 -Vve 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.


2
Programın sürümü, bağlantı için kullanılan protokol değil. 3 yıllık bir önceki cevabın doğru bir şekilde açıklandığı gibi, aynı program yapılandırmaya bağlı olarak hem SSH1 hem de SSH2 protokollerini destekleyebilir veya desteklemeyebilir.
dave_thompson_085

11

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.0iyi 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_configDosyası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.0Orada görmek istiyorsun


4

Bunu yerel makinenizdeki netcat kullanarak oldukça hızlı bir şekilde alabilirsiniz, örneğin:

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3

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))

0

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_CONNECTIONDeğişkenin birinci ve ikinci alanları, bağlantımın kaynak IP ve kaynak portunu gösterir. Bu grepdeğ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.0veya daha eski bir auth.logdosyada olabilir.

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.