- 论坛徽章:
- 0
|
1.有一个sh脚本,输出hello,word!
2.服务器ssh使用公钥认证方式,在authorized_keys中使用command项,如下示例- command="$HOME/bin/hello",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAn/HUoFQgvK6ger/7WqFCP32VUhYxvgR3IlAlmLkcMdifm7nT+NKWX9j4/+31e49Q4cK33Y8xR/vdcfhtimxxxxxxxxxUDqCuc2FWQpxbp6XPbYL7bEQkL5ZXagjqevOtxFK+yxpcjzMNLhgPxxxxxxxxxxxxxxxxxxxxxxxx7TxHn0tuBGvjOrGKlKSD9glYexS8wRwpzEt74jNgrCzym7n7Dspxph6NV/IkPJmJG/58376rH4HJh0cqVWmh/nzmjVpAM4IQSw== as@121015102839d9xxxxxx
复制代码 3.这时候客户端看到脚本执行结果,hello,word!并且ssh和之间的连接自动关闭。
连接是否关闭由能否由脚本来控制,或者执行其他的操作。我现在的问题是,无论我在脚本中执行什么操作,当脚本执行完成后,连接都会自动关闭。
如果有朋友用过gitolite这个开源项目,会发现,他使用的command的命令来区分不同的用户。
ssh git@192.168.1.2 返回的是当前用户的权限情况
git clone git@192.168.2:tesging返回的是版本库
这两种访问都是ssh方式的,command中的内容都会被执行。gitolite中又是如何处理的,他用的perl脚本,这种脚本我基本看不明白。
有知道内情的,希望给咱解释一下
|
|