.Ssh / config dosyasında birden çok Ana BilgisayarAdı / Bağlantı Noktası birleşimi nasıl belirtilir


10

Merkezi bir sunucuda birden fazla Mercurial veri havuzundan çekip iten birden çok not defterim ve iş istasyonum var. Genellikle .ssh/configbir takma ad ayarlamak için kullanılır :

Host repo-server
HostName server.somedomain
User user143
IdentityOnly yes
IdentityFile ~/hgkey
Port 156

... ve daha başka seçenekler, fikri anladınız. Daha sonra hg push ssh://repo-server//hgroot/someprojecther yerel depoda bir tane yapabilirim ve sunucu adresini ve bağlantı noktasını tek bir yerde değiştirebilirim.

İş istasyonları için bu iyi çalışır, ancak dizüstü bilgisayarlar farklı bir adres ve farklı bir bağlantı noktası kullanarak ağın içinden veya dışından sunucuya erişebilir. SSH'nin bunları otomatik olarak sırayla denemesi için birden çok HostName / Port birleşimi belirtebileceğim bir yol var mı? Bu şekilde, kullanıcılar doğru adresi önemsemeden itebilir ve çekebilirler.

(elbette, bir VPN kullanmak en doğru çözüm olacaktır)

Yanıtlar:


5

Korkarım SSH ile mümkün değil.

Muhtemelen bu kullanarak geçici bir çözüm olabilir ProxyCommanddizüstü bağlandığı yerde nasıl / bağlı bir sunucu (Netcat'i kullanarak) bir TCP bağlantısı oluşturur özel bir komut dosyası ile birlikte ssh'ın seçeneği. Çizgileri boyunca bir şey:

#!/bin/bash
SSID=$(/sbin/iwgetid wlan0 -r)

case "$SSID" in
net1)
  nc <host1> <port1>
  ;;
net2)
  nc <host2> <port2>
  ;;
*)
  nc <host3> <port3>
  ;;
esac

Sonra, sizin .ssh/config, aşağıdakilere ihtiyacınız olacaktır:

Host repo-server
  User user143
  IdentityOnly yes
  IdentityFile ~/hgkey
  ProxyCommand path-to-script

Sanırım HostNamegirişleri değiştiren bir senaryo yazacağım . Teşekkür ederim.
leoluk

Bu Linux'a özgü görünüyor. Örneğin, / sbin / iwgetid WSL altında görünmüyor ...
Michael

-1

Başka bir alternatif, “sağ” ip'in ssh portunu 22 dizüstü bilgisayarınızın kullanılmayan bazı yerel portlarına ve sonra ssh'a iletmek için bir komut dosyası ayarlamak olabilir. Bunu birçok durumda kullanıyorum.


1
Bu bir örnek olmadan hiç de net değil.
Andrew Schulman
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.