1. 程式人生 > >linux不開賬號允許遠端執行命令

linux不開賬號允許遠端執行命令

2016-09-21

周海漢 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協議,轉載請註明來源