Kartopunun cevabı çok yardımcı oldu. Ancak, komutta bazı değişiklikler yaptım ve nasıl çalıştığını açıklamak istedim. Bu durum göz önüne alındığında:
ssh ssh
A -------> B -------> C
^ ^
using A's using B's
ssh key ssh key
~/.ssh/config
Dosyanızı değiştirin ve B
içinden geçmek istediğiniz ana bilgisayarı ekleyin , tıpkı normalde bir ana bilgisayarı nasıl yapılandırdığınızı:
Host B
User myusername
HostName b.mycompany.com
Ardından C
, sonlandırmak istediğiniz ana bilgisayarı ekleyin :
Host C
User myusername
HostName c.intranet.mycompany.com
ProxyCommand ssh -T -q -o 'ForwardAgent yes' B 'ssh-add -t 1 && nc %h %p'
Şunlara dikkat edin ProxyCommand
:
ssh -T -q
bir sözde TTY ( -T
) tahsis etmemesi ve sessiz kalması gerektiğini belirtir -q
;
- bir kez atlama ana bilgisayarda
B
, biz SSH anahtarlarına anahtarı eklemek A
through ssh-add
;
- sadece SSH aracısını kullanarak yönlendirdiğimiz için çalışıyor
-o 'ForwardAgent yes'
.
ssh-add -t 1
anahtarın yalnızca son ana C'ye kimlik doğrulaması için gereken 1 saniye boyunca eklenmesini istediğimi belirtir;
- ve son olarak,
nc %h %p
bir başlatır netcat
nihai ana bilgisayara bağlantı %h
limanında %p
(bilgilere dayanarak SSH tarafından doldurulacaktır hangi ikisi ~/.ssh/config
dosyası).
Kullanmak için özel bir anahtar belirtmeniz gerekiyorsa B
, ssh-add
parçayı değiştirerek bunu yapabilirsiniz :
Host C
User myusername
HostName c.intranet.mycompany.com
ProxyCommand ssh -T -q -o 'ForwardAgent yes' B 'ssh-add -t 1 ~/.ssh/mykey && nc %h %p'