リモートシステムにインストールされていないシェルの使用

リモートシステムにインストールされていないシェルの使用

与えられたシナリオ:

  • 離れてマシン:SSHサーバー。ユーザー管理者権限がありません。
  • 地元のマシン:SSHクライアント。ユーザー管理者権限があります。

もしユーザー、ログイン離れて~から地元の、希望する離れて削除されたシェルの使用離れて、どうしようかユーザーこれ一人でやるの?

例:ユーザー使用存在する地元のを使いたいです。離れて、しかし離れてただ強く打つそして扱いにくいインストールする。

答え1

リモートシステムに必要なシェルをインストールします。これを行うには管理者権限が必要なく、ホームディレクトリにプログラムをインストールできますが、それほど便利ではありません。バラよりルートなしでDebian 5 32ビットにインストールsudo権限なしでローカルにプログラムをインストールする方法は?追跡プログラムそしてその他の問題

デフォルトのシェルの代わりにインストールされた独自のシェルに自動的にログインするには、次を参照してください。rootアクセスなしでzshデフォルトシェルを作成する

リモートファイルでのみ作業したい場合は、次のものを使用できます。SSHFSリモートディレクトリツリーをローカルコンピュータにマウントします。

mkdir ~/remote.d
sshfs remote.example.com:/ ~/remote.d
ls ~/remote.d/
fusermount -u ~/remote.d

ホームディレクトリにスペースがない場合、または共有アカウントの場合は1つを設定できます。リバースSSHトンネルローカルディレクトリツリーをリモートコンピュータにマウントします。SSHFS、両方のシステムが同じアーキテクチャ(同じプロセッサタイプの同じUNIXバリアント)を実行しているとします。両方のシステムのアーキテクチャが互換性がない場合は、ローカルホームディレクトリにリモートアーキテクチャ用のプログラムをインストールすることもできます。ライブラリ、構成ファイル、およびその他のデータファイルを見つけるにはプログラムパスを正しく設定する必要があるため、これは非常に便利ではありません。

Emacsシェル互換性徒歩旅行者:Eshellからリモートディレクトリに変更すると、リモートコンピュータでコマンドが実行されます。

答え2

簡単な答え:いいえ、リモートボックスにインストールされていないプログラムはリモートボックスでは使用できません。

回避策:リモートシステムにシェルをインストールするために管理者権限は必要ありません。ホームディレクトリにインストールできますが、ソースからコンパイルする必要があります。通常これを書くconfigure --prefix=${HOME}/local

最後の注意:基本シェルを非「公式」シェル(参考資料を参照/etc/shells)に変更することはできませんが、変更することexec fishはできます。.bashrc

答え3

ユーザー利用できるsshfsローカルコンピュータにリモート$ HOMEをインストールします。そのようなシナリオではユーザーリモートシステムで自分が選択したシェルを直接使用しませんが、何もないよりも優れています。

答え4

明らかな答えは「リモートコンピュータにコマンドをインストールしてください」です。これは最もきれいなソリューションなので、無視してはいけません。

たとえば、を使用してrootとしてコマンドをインストールできる場合は、
sudo apt-get install fish
のようにコマンドを実行できます。

ssh remote -t fish


問題は、インストールできませんリモートコンピュータでコマンドを実行します。
またはより具体的に私たちのケースについてコマンドをrootとしてインストールできません
だからといって全く設置できないという意味ではありません!

それでも動作するのはインストールコマンドですホームディレクトリからそれを構築することでソースから

これの利点は、関連するすべてを処理することです。支援書類おそらく、コマンドとプログラムがコマンドを見つける方法があります。fishシェルの例では、次のようになります。完全な機能ちょっと待ってください。バイナリだけをコピーしても、何も使用できませんfish

ソースからコマンドをビルドするには、使用されるライブラリの開発ツールと開発ファイルが必要です。これは複雑すぎる可能性があります。

ただし、多くのプログラムは必要なものをすべてソースにバンドルしているため、これは簡単です。以前は話すのが難しかったですが、試してみることができます。

ホームディレクトリにコマンドをインストールするには、configure次のように入力します。インストールパス- ビルドの指示で確認が必要です。たとえば、

mkdir ~/local
./configure --prefix=~/local 
make
make install

これはsudo make install通常とは異なることに注意してください。定時にローカルにインストールする場合、sudoは必要ありません。

ソースからプログラムをインストールする方法の一般的な情報については、以下を参照してください。askubuntu.SE:.tar.gz(または.tar.bz2)ファイルをインストールする方法は?

関連情報