A__*_*__0 5 ssh shell protocol
我设法弄乱了系统上的一些共享库,现在我的 shell 无法运行,从而将我锁定在系统之外。在远程系统上配置的ssh、sftp和scp似乎都依赖于 shell,因此这些替代方案已不再适用。确实,这不是一个大问题,因为我有一些远程手可以将我的 shell 更改为sh通过控制台。
不过,我很好奇,深入了解 SSH 协议的机制,是否可以在不调用/etc/passwdshell 的情况下对远程系统进行身份验证和执行某些操作(例如,修改 )?
编辑
公平地说,对于建议在ssh 命令字符串(例如)之后ssh myhost /bin/sh指定替代命令/shell 的人:手册页确实指出:
If command is specified, it is executed on the remote host instead of a login shell.
Run Code Online (Sandbox Code Playgroud)
这肯定会令人困惑。
[仅供记录——在撰写本文时,问题早已得到解决,希望]
使用openssh,执行的任何命令都sshd通过您的登录 shell 执行,并带有以下-c选项:
ssh(即ssh user@host command).authorized_keys(即command="..." ssh-rsa AAAA...)ForceCommand由选项指定的命令sshd_config~/.ssh/rc(通过/bin/sh ~/.ssh/rc)scp响应远程命令而执行的服务器本地命令scp因此,如果您的登录 shell 是伪造的(/bin/false或nologin)或损坏的,您将无法使用 远程执行任何操作ssh。这也是为什么不可能有其他 shell 的原因。
| 归档时间: |
|
| 查看次数: |
13533 次 |
| 最近记录: |