~/.ssh/config文件下面是我的当前配置:
Host my-ssh
HostName <ip>
User <user>
IdentityFile <file location>
Compression yes
RemoteCommand cd <path to folder>当我运行ssh my-ssh时,什么都不会发生。连接似乎自动关闭。如果我移除RemoteCommand线,它就会连接起来,而不会出现问题。
这是服务器配置中的内容吗?它是一个EC2实例,CentOS或RHEL,bash是shell。
发布于 2018-01-23 22:14:22
如果您指定了一个远程命令,那么当远程命令退出时,ssh连接就会关闭。cd命令几乎会立即退出。
做你想做的事的一个常见方法是:
RemoteCommand cd /some/path && bash(将所需的shell替换为"bash")。这个cd指向路径,如果cd操作成功,则调用一个子subshell。当子subshell退出时,ssh连接将关闭。
您还需要强制ssh为会话分配一个PTY:
RequestTTY yes如果没有,那么ssh在默认情况下不会请求一个,并且您将得到一个非交互式的shell会话。值得注意的是,您不会得到命令提示符。
发布于 2018-01-23 22:05:24
如果指定了RemoteCommand,则与以下内容相同:
ssh user@host <command>所发生的情况是,ssh连接到主机,运行命令和出口,并将命令的退出状态作为ssh的退出状态返回。
从手册页:
如果指定了命令,则它将在远程主机上执行,而不是在登录shell上执行。
因此,您正在登录到主机,更改目录,然后退出ssh。我怀疑这是你想要的。远程命令是非交互式的,即在远程计算机上运行一个特定的命令.
发布于 2018-01-23 22:10:21
尝试运行ssh -t my-ssh。您可能需要强制进行伪终端分配,这是配置在~/..ssh/ config中省略的。
https://unix.stackexchange.com/questions/419198
复制相似问题