linux不開賬號允許遠端執行命令
周海漢 2016.9.21
如果允許使用者可以遠端執行一些linux命令,但並不希望在系統中給使用者單獨建立賬號。而每個使用者還需要隔離,需要認證是否是系統允許的合法使用者。同時需要限制操作的範圍和許可權,限制使用者遠端登入,具有良好的安全性。有什麼好的辦法呢?
下面是一種解決方案。
使用者端生成證書:
➜ .ssh % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zhh/.ssh/id_rsa): test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
2d:c4:10:61:ed:51:84:18:58:c8:72:a8:8c:cc:1c:08 [email protected]
➜ .ssh % scp test.pub dutucn:~/.
test.pub 100% 408 0.4KB/s 00:00
服務端配置證書和可以執行的命令
[[email protected] ~]$ cat test.pub » .ssh/authorized_keys
[[email protected] ~]$ cat mycmd.sh
#!/bin/bash
http://abloz.com
2016.9.10
case “$SSH_ORIGINAL_COMMAND” in
“ps”)
ps -ef
;;
“echo”)
echo “$SSH_ORIGINAL_COMMAND”» echo.txt
;;
“httpd stop”)
/etc/init.d/httpd stop
;;
“httpd start”)
/etc/init.d/httpd start
;;
*)
echo “cmd is $SSH_ORIGINAL_COMMAND”
echo “Only these commands are available to you:”
echo “ps, vmstat, echo, httpd stop, httpd start”
exit 1
;;
esac
[[email protected] ~]$ cat .ssh/authorized_keys
…
command=”/home/zhouhh/mycmd.sh echo”,no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFYLVw7y2DdCSaBPyC8NvsI5Rixqo5Ojv/xPyi1WvNibeMS6h8V/ndMDfXS/o/njf4POhBe5CCoFWKo/1bkwehyTFkq6xxEdxnlUySyHFdCd91iEZ9iMz/4VMEQkNVpQn/IQ5uNtpoHD/S7kFTqTux5i3nvkXvdT3CHvwNxu29Q+EjNTsa6WPmGD/oVkuCA1pLH/HfaMXfbwqIV4G8Z3R1NsecL5gr7e14soP/DxE7dRfTSUey1I8eaHhnutemuRI+LVyQ+impu3XuZJ3oZEysSAlRLg9my3eL374lI1loQdngoCfAZvJ2DkOcpB5w9yVO4zTjMzzQ3KV3p2VjfuN3 [email protected]
這時使用者就可以在遠端執行相應的命令。服務端會對執行許可權和範圍進行檢驗,但並不為使用者在系統開戶。
這可以在web系統中對使用者操作進行很好的控制。目前已經在一些系統中得到應用。
如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源