web-dev-qa-db-ja.com

2番目のサーバーのキーを持つ別のサーバーを使用してサーバーにSSHで接続する方法は?

これを模倣するようにsshを設定する方法:

ssh [email protected] -i /path/to/.ssh/server-1-ssh-key -t ssh server2-user[email protected] -i /home/server1-user-name/.ssh/server2-ssh-key

実行すると

ssh server2

説明:

  • 私はローカルマシンからのキーを使用してserver1.netにログインしています(/path/to/.ssh/server-1-ssh-key

    ssh [email protected] -i /path/to/.ssh/server-1-ssh-key
    
  • 次に、次のIP 10.0.0.10でサーバーにログインします。これを行うには、キー(/home/server1-user-name/.ssh/server2-ssh-key)、server-1に保存されます

この場合、ローカルマシンのssh構成はどのように見えるべきですか?

私は次の構成を試しました:

Host server2
  Hostname 10.0.0.10
  User server2-user-name
  ForwardAgent yes
  ProxyCommand ssh -i /path/to/.ssh/server-1-ssh-key -W %h:%p

しかし、それは機能しません。

7
czerasz

したがって、基本的にはserver1をジャンプボックスとして機能させたいので、server1には1つのスタンザが必要です。

Host server1
Hostname server1.net
User server1-user-name
IdentityFile /path/to/.ssh/server-1-ssh-key

次に、これをジャンプするサーバー2のスタンザが必要です。

Host server2
Hostname 10.0.0.10
User server2-user-name
ForwardAgent yes
ProxyCommand ssh server1 nc %h %p 2> /dev/null
IdentityFile /home/server1-user-name/.ssh/server2-ssh-key
6
jshort

両方のサーバーのsshd_configファイルでAllowAgentForwardingを設定する必要があります。サーバー1のクライアント構成でForwardAgentを設定する必要がある場合もあります。

参照: https://help.github.com/articles/using-ssh-agent-forwarding

0
Martin Eve