私が達成したいのは、target.server
次のコマンドを使用してパスワードを入力せずにローカルコンピュータから一部のデバイスに接続できることです。
ssh [email protected]
ssh [email protected]
上記の各ユーザーは、それぞれgateway1.example
とそれに対応する特定のIPアドレスの接続のみを許可しますgateway2.example
。authorized_keys
パスワードを入力しなくても、次のことを可能にするために必要なすべてのSSHキーを右側に追加しました。
ssh [email protected]
ローカルコンピュータで、その後。ssh [email protected]
gateway1
ssh [email protected]
ローカルコンピュータで、その後。ssh [email protected]
gateway2
今私はローカルに正しいエントリを追加する必要があると思います~/.ssh/config
。
Host target.server
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
それから仕事をしてください。しかし、両方を同時に動作させる方法がわかりません。私は試した:ssh [email protected]
user1
user2
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
または
Host target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
しかし、まだ動作しませんuser2
。すべてが通過しますが、gateway1
何も起こりませんgateway2
。
助けてくれてありがとう!
修正する:次のコマンドを操作できました。
ssh user1
ssh user2
(なし@target.server
)次の設定を使用してください。
Host user1
HostName target.server
User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Host user2
HostName target.server
User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
これは私が使うでしょうが、この質問の冒頭にある2つのコマンドに対する解決策はまだ疑問に思います。
ベストアンサー1
ご存知のように、エイリアスは素晴らしいソリューションです。これを使用したくない場合は、このMatch
ディレクティブが別の有効なオプションになる可能性があります。
Host target.server
Match User user1
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
Match User user2
ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'
ssh_config
マニュアルページから:
マッチ 次の文章を制限してください(次の文章まで所有者またはマッチキーワード)は、次の場合にのみ使用されます。マッチキーワードが満たされました。