
現在、私は自宅で仕事をしており、本番サーバーに接続する必要があります。職場のセキュリティ ポリシーでは、VPN クライアントが本番インスタンスに接続することを許可していません。そのため、エージェント転送は開発サーバー (アクセス可能) 経由で構成できると考えました。これは許可されているからです。
これを実行するには、まず開発サーバーのエージェント転送を有効にします。
- 開発サーバーエントリにコンピュータに
ForwardAgent yes
追加しました~/.ssh/config
- 私は
eval 'ssh-agent'
SSHエージェントを起動するために走りました - 私はエージェントにSSHキーを追加しました
ssh-add ~/.ssh/id_rsa
- 私は開発サーバーに接続しました
ssh -A <devserver>
- 開発サーバーで、本番サーバーに接続しようとしました。
ssh -T me@<prodserver>
その後、本番サーバー上でコマンドを実行できるようになりました。ただし、実際の bash プロンプトは表示されません。
プロンプトが表示されるようにするために何かできることはありますか?
答え1
最後のステップでは、オプションssh
なしで実行します-T
。
-T Disable pseudo-terminal allocation.
この-T
オプションを使用すると、実際には TTY の割り当てが無効になり、シェルが使用できなくなります。
mtak@rubiks:~/bla(develop)$ ssh gen1
THIS IS A PRIVATE COMPUTER SYSTEM. Unauthorized access prohibited.
You have mail.
Last login: Tue Mar 10 10:45:25 2020 from vpn-int-2.int.mtak.nl
mtak@gen1:~$ logout
Connection to gen1 closed.
mtak@rubiks:~/bla(develop)$ ssh -T gen1
THIS IS A PRIVATE COMPUTER SYSTEM. Unauthorized access prohibited.
You have mail.
date
ma mrt 16 16:12:53 CET 2020
答え2
私は本番サーバーに接続しようとしました
ssh -T me@<prodserver>
-T
オプションを使用しているため、プロンプトが表示されませんsshにターミナルモードを無効にするように指示しました(tty 割り当て)。
tty の存在によって、すべてのプログラムは、対話的に実行されているか (つまり、ターミナル/キーボードに接続されているか)、ファイルまたはパイプからコマンドが供給されているかを判断します。後者の場合、つまり「バッチ」モードでは、シェルがすべてのプロンプトを無効にするのが普通です。「ls」などのツールは、洗練されたフォーマットや色付きの出力を失います。