1つのコマンドでホストに正しくSSHを接続し、LXCコンテナを接続するにはどうすればよいですか?

1つのコマンドでホストに正しくSSHを接続し、LXCコンテナを接続するにはどうすればよいですか?

コンテナ自体にSSHを接続する必要なく、Proxmox経由でSSH経由でLXCコンテナに接続したいので、lxc-attach <ID>まずProxmoxホストに接続してから、自分に接続されたコンテナを実行すると、必要な結果が得られます。

今は一度にやってみたいです。そのために、私のrcファイルには次の機能があります。

sshc() { ssh $1 "lxc-attach $2; bash -i" }

動作しますが、端末では次のように見えます。

プロンプトにユーザー名と現在のディレクトリ名は表示されません。

これは次のように異なるように見えます。

root@root1543:~# lxc-attach 1111
root@container:~# pwd
/root
root@container:~#

現在、シェルでユーザーとホストを見たいのですが、私のソリューションには表示されません。

SSH設定でRemoteCommandを変更することも検討しましたが、RemoteCommandにパラメータを渡すことができないようで、その試みを放棄しました。

答え1

通話に「-t」オプションを追加してくださいssh

sshc() { ssh -t $1 "lxc-attach $2; bash -i" }

リモートシステムで実行されるコマンドで呼び出すと、デフォルトsshではセッションにTTYが割り当てられません。 "-t" を追加すると、ssh はセッションに対して TTY を要求するように指示します。

対話型セッションは通常、TTYを介して機能し、バックスペースキーを使用して入力した内容を編集する機能などの特定の機能を提供します。また、シェルはTTYの存在を使用して、コマンドラインプロンプト印刷などの対話を決定します。

関連情報