SharpSSH与Persistent ShellExec连接

时间:2010-06-29 14:23:03

标签: c# ssh sharpssh

我正在使用SharpSSH连接到SSH服务器,我尝试使用SshShell和SshExec。 我需要能够接受一系列命令并按顺序将它们发送到服务器,所以SshShell并没有真正做到我需要的东西,因为我必须在整个时间内纠缠流,似乎它会有点像一个kludge。所以我尝试了SshExec,但发现它有一个问题,每次发送命令时,它似乎都在建立一个新的连接并丢失最后一个命令的上下文。例如,如果我运行以下命令:

pwd
cd .ssh
pwd

我希望它能输出

/home/adam

/home/adam/.ssh

但是,它只是两次输出“/ home / adam”,这意味着目录更改在两者之间丢失。

有没有办法可以配置它,以便它保持与SSH服务器的持续连接,直到我告诉它断开连接?

2 个答案:

答案 0 :(得分:2)

这样做:

exec.RunCommand("pwd; cd Desktop; pwd")

我不确定如何进行高级命令,但我尝试了它并输出:

/Users/MyUser
/Users/MyUser/Desktop

答案 1 :(得分:1)

要cd到隐藏目录(任何以点(。)字符开头的目录),您需要将值括在引号中。

根据the documentation

  

4)如果目录操作数的第一个组件是点或点,请继续执行步骤6.

     

6)将curpath设置为由PWD值,斜杠字符和操作数的串联形成的字符串。

简而言之,cd '.ssh'应该可以解决问题。