異なるサーバーユーザーを使用して2つの異なるゲートウェイを介して同じサーバーに接続する(SSH)

異なるサーバーユーザーを使用して2つの異なるゲートウェイを介して同じサーバーに接続する(SSH)

私が達成したいのは、target.server次のコマンドを使用してパスワードを入力せずにローカルコンピュータから一部のデバイスに接続できることです。

ssh [email protected]
ssh [email protected]

上記の各ユーザーは、それぞれgateway1.exampleとそれに対応する特定のIPアドレスの接続のみを許可しますgateway2.exampleauthorized_keysパスワードを入力しなくても、次のことを可能にするために必要なすべてのSSHキーを右側に追加しました。

今私はローカルに正しいエントリを追加する必要があると思います~/.ssh/config

Host target.server
    ProxyCommand ssh -o 'ForwardAgent yes' [email protected] 'ssh-add && nc %h %p'

それから仕事をしてください。しかし、両方を同時に動作させる方法がわかりません。私は試した:ssh [email protected]user1user2

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マニュアルページから:

マッチ 次の文章を制限してください(次の文章まで所有者またはマッチキーワード)は、次の場合にのみ使用されます。マッチキーワードが満たされました。

おすすめ記事