SSH ForwardAgent çoklu şerbetçiotu


15

Ben son 2 saat şanssız aşağıdaki sorun için bir çözüm arıyordum.

Geliştirme:

Sunucularıma bağlanmak için publickey kimlik doğrulaması kullanıyorum. Genel / özel anahtarları yönetmek zorunda kalmamak için ssh-agent iletmeyi kullanıyorum.

Diyelim ki sunucularım var A, B and C.

Eğer bağlanırsam çok iyi çalışır LOCAL ---> A ---> B.

Ben de çok iyi çalışır LOCAL ---> A ---> C.

Şimdi LOCAL ---> A ---> B ---> Cdenersem SSH bağlanamaz B to C.

Dikkate değer: A sunucusuna likidite olarak bağlanırken, B sunucusuna root olarak bağlandım. Sunucu B'yi likidite olarak bağlamak sorunu çözüyor, ancak bu benim için bir seçenek değil.

Bir kullanıcının önerisine göre ssh -A, aracı yönlendirmenin etkinleştirildiğinden emin olmak için her seferinde kullanıyorum .

Benzer bir soru buldum, burada cevap yok: ssh-ajan iletimi birden fazla atlama ile zincirlemek mümkün mü?

@Zoredache'e göre: /server//a/561576/45671 Sadece her bir ara sistemde istemci yapılandırmamı ayarlamam gerekiyor. Ben de öyle olduğuna inanıyorum.


SSH aracısını iletmek yerine ProxyCommandatlamayı ( burada açıklandığı gibi ) kullanmayı düşünün . Yaklaşımınız için zincirdeki tüm makinelere güvenmelisiniz çünkü özel anahtarlarınızı kullanabilirler. Ayrıca bilinen ana bilgisayar denetimi yerel olarak yapıldığından ProxyCommand yaklaşımını çok daha iyi seviyorum ve dahası, C'ye bağlanmak için tek bir komut kullanabilmeniz için SSH yapılandırmanızdaki zinciri ayarlayabilirsiniz.
gertvdijk

Ne yazık ki proxyCommand kullanamıyorum. Güvenlik konularına rağmen, gerçekten forwardAgent kullanmam gerekiyor.
likidite

@liquidity size neden proxyCommand kullanmak istemediğinizi sorabilir miyim? Aynı sorun var ve anladığım kadarıyla proxyCommand daha güvenli. Hangisini kullanacağımı düşünüyorum ..
grep

Yanıtlar:


13

Birden çok şerbetçiotu üzerinden aracı yönlendirmenin çalışması için, aracı aracının yönlendirilmesi için her bir ara sistemde istemci yapılandırmanızı ayarlamanız yeterlidir.

Bu, /etc/ssh/ssh_configyapılandırılmış olduğundan emin olmak kadar basit olabilir . Ancak, istemci başına yapılandırmalarınız ~/.ssh/configvarsa bu ayarları da yapmanız gerekebilir.

Host *
    ForwardAgent yes

Aracı yönlendirmenin olup olmadığını veya bir hata olup olmadığını görebilirsiniz, -vseçeneği ekleyin .

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

Ayrıca geçerli bir ortam değişkeni ayarladığınızı doğrulayın.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

4
Ssh--bayrağını ssh_config veya ~ .ssh / config seçeneğine hızlı ve kirli bir alternatif olarak belirtmeye değer. -A [e], kimlik doğrulama aracısı bağlantısının iletilmesini sağlar.
dmourati

1
Her adımda, ssh-add -lssh'ın ajanınız aracılığıyla alabileceğini düşündüğü anahtarları listelemek için kullanabilirsiniz . Her bağlantıda yönlendirdiğinizden emin olun!
MikeyB

Teşekkürler! Ayrıca, her şey doğru şekilde yapılırsa, son sunucuda ssh-agent'ı manuel olarak başlatmanız gerekmeyeceğini unutmayın. Requesting authentication agent forwarding.Hata ayıklama çıktısında çizgi görürseniz otomatik olarak başlayacaktır . Eğer .bash_profilessh-agent'ı başlatmayı denediyseniz , oradan kaldırın, yoksa ajanınız herhangi bir kimlik olmadan tekrar başlayacaktır.
2upmedia
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.