ssh使用Python限制命令

时间:2017-06-01 18:52:58

标签: python linux ssh

我使用python脚本使用command文件中的authorized_keys参数来限制命令的使用。

命令

ssh host-name bash --login -c 'exec $0 "$@"' mkdir -p hello

我的脚本正在执行限制命令所需的操作。过滤后,python脚本会sys.exit(1)表示错误,sys.exit(0)表示成功。在返回值之后,上面的ssh命令没有在最后执行。我需要从python脚本发送到SSH守护程序吗?

2 个答案:

答案 0 :(得分:2)

command中的authorized_keys修饰符不是(仅)用于验证users命令,而是运行该命令而不是用户提供的命令。这意味着从那里调用sys.exit(0)会阻止运行用户提供的命令。

在该脚本中,验证命令后,您还需要运行它!

答案 1 :(得分:1)

我认为将其改为

ssh host-name bash --login -c 'exec $0 "$@" && mkdir -p hello'

应该这样做,否则bash会假设只有单引号中的部分是要执行的命令。

如果即使第一部分失败也应执行第二部分,请将&&替换为;