回答
我想出了我自己的。您可以通过设置环境变量并在强制命令脚本中读取它们来将参数传递给强制命令脚本。
SSH不允许通过参数(或甚至通过管道)传递密码,它通过设计制作,甚至在man
页面中进行了描述。只有通过ssh进行自动登录的方式是通过文件认证。
我想你可以尝试比较用户提供的密码和/ etc/shadow中的值。这应该做的伎俩:)
我不一定试图通过密码作为参数,但我想知道如何或什么传递给强制命令脚本作为参数。 –
强迫命令脚本是什么意思? – Bugari
有一个名为forced_command的ssh选项,您可以在登录时强制ssh运行。 –
您可以在sshd配置文件中设置ForcedCommand
,或者在相应用户的authorized_keys
文件中设置更好。
ssh执行会将环境变量SSH_ORIGINAL_COMMAND设置为发送到服务器的完整命令行,然后执行ForcedCommand
。
编写使用此环境变量提供参数的脚本具有安全隐患,因为攻击者可能会添加例如; rm -rf /
在命令行结尾处。然后首先运行ForcedCommand
,然后运行rm -rf /
。
This article描述了一个脚本,可用于一般锁定允许的命令行。它还包含相关信息的链接。
的机制如下:
- 把脚本(只)作为
ForcedCommand
- 允许添加“真正的”命令与参数
- 在主目录添加规则文件(
.onlyrules
)相应的用户帐户,它将可允许的参数限制为真实命令。
唯一脚本读取SSH_ORIGINAL_COMMAND检查该命令是)允许的(在参数列表)b)是在用户路径,然后检查是否参数传递的规则(在我们的情况下,简单的sed( 1)脚本
一个例子设置:
ForcedCommand /usr/local/bin/only ls
或authorized_keys
:
command="/usr/local/bin/only ls" ssh-rsa AAAA...
.onlyrules
\:^ls /tmp$:{p;q}
这将只允许命令ls /tmp
发送到远程主机。
- 1. Python Pexpect SSH命令行登录参数
- 2. 发送命令通过ssh与参数
- 3. gcloud ssh和带参数的命令
- 4. 进入SSH命令的Sanitize/escape参数
- 5. 针对所有用户的SSH强制命令
- 6. MVVM光强=>传递命令参数的EventArgs到命令
- 7. SSH UNIX命令
- 8. SSH命令-1
- 9. Codeship ssh命令
- 10. 如何强制的命令行参数字符串被引用
- 11. Eclipse强制将-k添加到C++构建命令参数中
- 12. GitHub命令强制检入
- 13. WPF - 如何强制命令
- 14. 强制的参数命名Python中
- 15. 支持SSH命令的Web控制台
- 16. 限制SSH - 没有命令的bash
- 17. SSH命令挂起
- 18. Plesk SSH Ftp命令
- 19. SSH,远程命令作为ssh命令选项
- 20. 强制的参数
- 21. AS3参数强制
- 22. 使用groovy来激活带参数的远程ssh命令
- 23. 命令行参数在bash shell脚本中的嵌套ssh
- 24. 在ssh中使用参数运行多个命令
- 25. 如何将参数传递给SSH命令?
- 26. 在python中执行参数的ssh命令
- 27. 如何在远程ssh命令中传递参数
- 28. 动态复制命令参数
- 29. forfiles和复制命令与'c'参数
- 30. 家长用户控制命令参数
什么是“SSH强制命令”?你能向我们展示你正在尝试使用的命令吗?调试你看不到的代码是非常困难的。 – ghoti