ssh:ログインする前にコマンドを実行する

ssh:ログインする前にコマンドを実行する

SSHを介してリモートコンピュータにログインしてローカルコマンドを実行する方法を探しています。 (コマンドが完了した後でもログイン状態を維持したいです。)つまり、コマンドラインでコマンドを指定したいと思います。リモートコンピュータで実行し、正常にログインしたようにシェルをインポートする必要があります。

/homeたとえば、シェルを取得する前にリモートシステムにインストールしたいとします。私はこのようなことをします(うまくいきません)

ssh mymachine.example.com 'mount /home ; /bin/bash'

実際、次の2つのコマンドを1つに圧縮する方法を探しています。

ssh mymachine.example.com 'mount /home'
ssh mymachine.example.com

これを行う方法を知っている人はいますか?

重要:リモートコンピュータで実行するコマンドを保存したくありません。ローカルに保存する必要があります(暗号化された家を復号化するためのパスワードが含まれている可能性があります)。

答え1

-t疑似端末割り当てを強制するオプションを探している可能性がありますssh。このオプションがない場合は、端末をリモートランチャーの標準入力/出力/エラーに直接接続できます。したがって、コマンドは次のようにする必要があります。

ssh -t mymachine.example.com 'mount /home ; /bin/bash'

答え2

私は他のアプローチをお勧めします:デフォルト接続の使用。まず、マスター接続を開始してインストールを実行し、永久にスリープ状態にしてから、認証を必要としないスレーブ接続を使用するため、非常に高速です。

ssh -M mymachine.example.com 'mount -o password=swordfish …; exec sleep 999999999'
ssh mymachine.example.com ls

答え3

sshのrcファイルを使用できます。

文書~/.ssh/rcユーザーのホームページが利用可能になる前に実行されるので、すべてをそこに入れることができます。

これらのファイルはサーバーに常駐します。

国民役に立つかもしれません。

関連情報