外部プロセスからSSHクライアントプロセス内の作業ディレクトリをインポートする

外部プロセスからSSHクライアントプロセス内の作業ディレクトリをインポートする

SSH経由でリモートコンピュータに接続しました。lsそのリモートコンピュータの現在の作業ディレクトリをインポートし(好ましくは同様のコマンドを実行したいが)、プロセスの外部からインポートしたいと思います。

これが私のプロセスです

$ ps
49100 ttys001    0:00.21 -zsh
52134 ttys002    0:00.21 -zsh
52171 ttys002    0:00.05 ssh [email protected]

ターミナル2(ttys002)は現在リモートシステムにSSHで接続しています。

クライアントシステムからリモートホストの現在の作業ディレクトリを取得できますか?つまり、pwd端末2に入力する必要はありません。

実行すると、lsofプロセスのローカルコンピュータから現在の作業ディレクトリを取得できますが、リモートコンピュータでは取得できません。

~ $ lsof -p 52171
COMMAND   PID    USER   FD      TYPE             DEVICE SIZE/OFF                NODE NAME
ssh     52175   falky  cwd       DIR                1,4     2816              994619 /Users/falky

これが不可能な場合は、SSHを介してリモートシステムに接続する前にこれを行う方法はありますか?たとえば、疑似端末を設定できますか?それとも私のローカルコンピュータにpingを送り返すリモートコンピュータに何かをインストールできますか?ここにアドバイスや指示があれば役に立ちます。

ベストアンサー1

これが不可能な場合は、SSHを介してリモートシステムに接続する前にこれを行う方法はありますか?

「接続共有モード」でSSHクライアントを起動できます。

ssh -M -S ~/.ssh/%r@%h:%p user@localhost
user@localhost's password:
...
user@localhost$ echo $$
5555
user@localhost$ cd /some/path

他の端末から:

ssh -S ~/.ssh/%r@%h:%p user@localhost
<no need to enter the password again>
user@localhost$ ls -l /proc/5555/cwd
<listing of /some/path>

ssh(1)マンページを参照して調べてください。-Sそして-Mオプションssh_config(1)Control*構成オプション。

おすすめ記事