Ssh
從外部程序獲取 SSH 客戶端程序內的工作目錄
我已經通過 SSH 連接到遠端機器。我想
ls
在該遠端機器上獲取目前工作目錄(理想情況下執行類似的命令),但來自該程序之外。這是我的流程
$ ps 49100 ttys001 0:00.21 -zsh 52134 ttys002 0:00.21 -zsh 52171 ttys002 0:00.05 ssh user@host.com
終端 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 發送回我的本地機器嗎?這裡的任何建議/方向都會有所幫助。
如果這是不可能的,在通過 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>