OpenSSH ile SSH geçiş sunucusu


10

Yönlendiriciler, anahtarlar vb. Gibi diğer SSH özellikli cihazlara geçiş yapmak için OpenSSH kullanmak mümkün mü .. Bu, Linux'ta ısmarlama uygulama oluşturmadan yapılabilecek bir şey mi?

Teşekkürler

Yanıtlar:


9

Elbette; sadece SSH port yönlendirme / tünelleme kullanın. Aşağıdaki komutu kullanarak "proxy" makinesine ssh bağlantısı başlatın:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST: SSH erişimine sahip olduğunuz makine
  • $REMOTEHOST: $ PROXYHOST cihazının bağlanabileceği, ancak bağlanamadığınız makine. $PROXYHOSTMakineye başvurmak için kullanabileceğiniz bir ana bilgisayar adı veya IP kullanın
  • $SSHPORT: sshd'nin uzak ana bilgisayarda dinlediği bağlantı noktası; büyük olasılıkla 22
  • $LOCALPORT: yerel makinenizde giden bağlantı noktası SSH açılıyor ve yerel makinenizde bağlantı noktası 22'ye $REMOTEHOST

Tünelin çalışmasını sağlamak için bağlantıyı yukarıda bırakın. -NKomuta da eklemek isteyebilirsiniz, böylece bu bağlantı uzak bir kabuk getirmez ve daha sonra yanlışlıkla kapatmazsınız.

Tünel oluşturulduktan sonra aşağıdakileri yapın:

ssh -p $LOCALPORT localhost

Bu, bağlantı noktasındaki yerel makinenize SSH bağlantı noktasına yönlendirilen bir SSH bağlantısı dener $REMOTEHOST.


3

İstemcinizdeki yapılandırmayı güncellemek istiyorsanız, istemcinizi ağ geçidi kutunuzu proxy olarak kullanacak şekilde ayarlayabilirsiniz . Geçiş kutunuzda netcat kurulu olmalıdır ve en iyi sonuçları elde etmek için anahtar tabanlı kimlik doğrulama ayarlarına sahip olmak istersiniz.

Başka bir ana bilgisayardan bağlanmak için .ssh / config dosyamda kullandığım şey şu.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

Yukarıdakilerle , istemci makinenizden ssh internal-ssh-host-proxy komutunu çalıştırabilirsiniz .

Proxy SSH ana bilgisayarında OpenSSH istemcisi 5.4 veya üstü varsa, netcat'e ihtiyacınız yoktur ve bunun yerine yerleşik netcat modunu kullanabilirsiniz.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

Maalesef bu, istemci sunucu ve sunucu arasındaki geçişi yapmak için netcat kullandığınız OpenSSH kullanmıyor mu?
aHunter

Neredeyse her yerde bulunan çok yaygın bir yardımcı programla birlikte OpenSSH kullanıyor. Saf ssh değil, ama ben buna ısmarlama demem.
Zoredache

Hayır ısmarlama olmadığını kabul ediyorum, ancak OpenSSH kullanarak geçiş yapmanın mümkün olup olmadığını bilmek istedim, böylece standart bir ssh istemcisi ve ssh kullanarak OpenSSH çalıştıran bir kutuya otomatik olarak başka bir makineye veya birden fazla makineye ssh erişimi sağlıyor. Teşekkürler
aHunter

1
- @aHunter, kayıt için şimdi sunuyor saf openssh bağlantı yapar Openssh'ın 5.4 yerleşik bir 'netcat'in modu' var blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode harici araçlar ihtiyaç vardır.
Zoredache

3

Sunulan cevaplardan Zordache en iyi çözümdür. Bununla birlikte, gelecek nesiller için, yapılandırmanızı düzenlemeden geçici olarak bağlanmak istiyorsanız, -tbayrağı doğrudan röle üzerinde ssh yürütme ile birlikte bir sahte terminal tahsis etmek için kullanın .

ssh -t relay.example.com ssh internal.example.com

düzenleme dosyaları olmadan en basit çözüm
Kartoch

2

OpenSSH kullanarak bağlantıları otomatik olarak iletebilirsiniz. Senin içinde ~/.ssh/authorized_keysdosyanın, ikinci makineye SSH olabilir, hangi yürütülecek bir komut belirtebilirsiniz.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Sonuç olarak iki istem istenir Password:: biri aktarma sunucusu için diğeri hedef sunucu için. Sertifikaları kullanarak her zaman bu davranışı kaldırabilirsiniz.


kulağa mükemmel geliyor, sshd'yi openssh içinde nasıl yapılandırırsınız?
aHunter

[1] 'de [Zorunlu Komutlar] bölümünde [1] bakınız eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

bu inanılmaz bir fikir. Yapmak istediğim son şey, güvenlik duvarımda rotalarla 100 ayrı bağlantı noktası açmak. Sonra yedeklilik için tekrarlayın. Bu, 100 ssh anahtarı oluşturabildiğimi ve her birini kendi sunucusuna bağlayabildiğimi gösteriyor. Bu ayrıca geçiş sunucusunu tamamen kilitleyebileceğimi gösterir. Bazıları buna VPN diyebilir ama farklı görüyorum.
Richard
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.