リモートサーバーで複数のファイルを編集しています。 SSH(公開鍵またはパスワード)を使用して接続できます。 Vimの使い方は次のとおりです。
vim scp://user@server//path/to/file.cpp
Vimをカスタマイズして自分のコンピュータで使用する必要があるため、サーバーにインストールされているVimを使用したくありません。
このリモートサーバーには何もインストールできません。コンパイルするにはmake
。
make
Vimで実行してサーバーでコンパイルできるようにしたいです。 SSH経由でサーバーに接続している他の端末を開かないようにしたいです。
だから私の質問は次のようになりますVim経由でSSH接続を維持できますか?
ありがとう
答え1
もちろん、最近クライアントにOpenSSHをインストールした場合は可能です。 「Control Pipe」があり、man ssh_config
表示されます。魔法。デフォルトでは、クライアントは~/.ssh/config
次のホストエントリを生成します。
Host my_remote_server # a symbolic name of your choice
Hostname server_IP_or_DNS # the real name
User username # the username you use for login
IdentityFile ~/.ssh/a_suitable_ssh_key_if_any # for authentication purposes
ControlMaster auto
ControlPath ~/.ssh/%C # or ~/.ssh/%h-%p-%r for older versions
ControlPersist 5m # or yes for neverexpiring persistent connection
これにより、最初の接続で指定された時間、または永久に開いている「チャンネル」が開きます。これからssh
入力した名前でのみ接続を参照できますHost
。たとえば、次のように書かないでください。
vim scp://username@server_IP_or_DNS//full_path/to/file.cpp
あなたは書くでしょう:
vim scp://my_remote_server//full_path/to/file.cpp
または
ssh my_remote_server
既存の永続接続を終了するには、以下を実行する必要があります。
ssh -O exit my_remote_server
これらはすべて一般的なSSH、SCP、SFTPにも当てはまります。それではそうします。