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*
構成オプション。