运行ssh命令并保持连接
在访问远程终端之前,是否有执行命令的方法 当我输入此命令时:运行ssh命令并保持连接,ssh,Ssh,在访问远程终端之前,是否有执行命令的方法 当我输入此命令时: bash $>sshuser@server.com'是' ls命令在远程计算机上执行,但ssh退出,我无法在远程会话中继续 有没有办法保持联系?我问这个问题的原因是我想为ssh会话创建一个设置,而不必修改远程.bashrc文件。我会强制分配一个伪tty,然后在执行ls命令后运行bash: syzdek@host1$ ssh -t host2.example.com 'ls -l /dev/null; bash' -rwxrwxr
bash
$>sshuser@server.com'是'
ls命令在远程计算机上执行,但ssh退出,我无法在远程会话中继续
有没有办法保持联系?我问这个问题的原因是我想为ssh会话创建一个设置,而不必修改远程.bashrc文件。我会强制分配一个伪tty,然后在执行
ls
命令后运行bash:
syzdek@host1$ ssh -t host2.example.com 'ls -l /dev/null; bash'
-rwxrwxrwx 1 root other 27 Apr 1 2005 /dev/null
bash-4.1$
您可以尝试在bash的init文件上使用进程替代。在下面的示例中,我定义了一个函数
myfunc
:
myfunc () {
echo "Running myfunc"
}
我将其转换为
中正确转义的一行,事实上,在我的情况下,我不能这样做,因为我的命令是用于设置的。如果我运行bash,我将丢失我所做的所有设置。您可以告诉我们您要运行的不是一般命令吗?我想创建一个bash函数,在反向隧道端口上运行netcat。我需要访问我的.bashrc,因此,我将其更改为:ssh-tlocalhost'bash--init文件您知道是否可以将此命令添加到ssh配置文件中吗?事实上,每次通过ssh登录服务器时,我都希望运行此命令。您可以使用ssh配置中的ProxyCommand
来执行此操作。我尝试了,但没有成功,但我不太了解手册页。
$ ssh -t localhost 'bash --init-file <( echo "myfunc() { echo \"Running myfunc\" ; }" ) '
Password:
bash-3.2$ myfunc
Running myfunc
bash-3.2$ exit