我可以在ssh连接的另一端本地检索远程shell的cwd吗?

时间:2017-08-16 14:12:31

标签: bash ssh proc

假设我运行以下命令:

user1@172.50.50.50:~$ ssh user2@172.51.51.51:/Documents
user2@172.51.51.51:~/Documents$ cd ~/Desktop/
user2@172.51.51.51:~/Desktop$ pwd
/home/user2/Desktop

有没有办法让我从172.50.50.50上的另一个进程从ssh进程的pid获取路径/ home / user2 / Desktop?

我想也许它会在/proc/<SSH PID>/的某个地方,但我无法弄明白。

2 个答案:

答案 0 :(得分:1)

不,你不能。

SSH客户端不知道服务器的工作目录。它不会在SSH协议中的任何位置传输。实际上,SSH服务器不需要知道它正在传输字符的进程(组)的工作目录。

获得所需内容的唯一方法是独立访问服务器主机,找到相应的sshd进程和特定的子进程,然后查询该子进程。

即使知道哪个子进程是相关的也是微不足道的 - 你可能在前台,后台或停止了三个或四个shell,也许还有一些编辑器和其他应用程序,它们都有不同的工作目录。需要哪一个?

答案 1 :(得分:0)

如果您对服务器有足够的权限并且知道ssh pid,则可以执行以下操作:

ls -l /proc/<SSH PID>/cwd

/proc/<pid>/cwd是一个符号链接,指向进程cwd的链接。