从给定user1 / client到同一user2 / server的多个ssh访问类型

时间:2017-09-01 11:07:14

标签: ssh authorization ssh-keys bazaar

我希望通过ssh从一个用户/客户端组合(例如,user1@cl)访问用户/服务器组合(例如,user2@srv),具有两种不同类型的Access:

  1. 访问类型#1将仅限于与集市存储库的交互。 为此,我在~user2/.ssh/authorized_keys中添加了一行(#1)

    command="bzr serve --inet --directory=/repodir --allow-writes",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa ... user1@cl
    
  2. 访问类型#2将是一个登录shell。 为此,我在~user2/.ssh/authorized_keys中添加了“通常”行(#2)

    ssh-rsa ... user1@cl
    
  3. 据我所知,正如我测试的那样,两条线都不能同时使用。 即,如果第一行出现在~user2/.ssh/authorized_keys中,那么我将能够与bzr repo进行交互,但我将无法做到

    [user1@cl]$ ssh user2@srv
    

    如果第2行首先出现在~user2/.ssh/authorized_keys中,那么我可以执行ssh,但任何bzr操作都会给出

    bzr: ERROR: Not a branch ...
    

    有什么方法可以解决这个问题吗?

    我使用的是RHEL7,但我想这并不重要。

    相关帖子(但根据我的理解,不解决我的案例):

    Best way to use multiple SSH private keys on one client

    https://serverfault.com/questions/142997/what-options-can-be-put-into-a-ssh-authorized-keys-file

    https://serverfault.com/questions/749474/ssh-authorized-keys-command-option-multiple-commands

    https://askubuntu.com/questions/1962/how-can-multiple-private-keys-be-used-with-ssh

1 个答案:

答案 0 :(得分:0)

我使用了两个不同的密钥对(比如bzr的对1和ssh登录的对2)。 我在~user2/.ssh/authorized_keys中添加了相应的行。 私钥1存储在文件id_rsa中(默认读取), 私钥2存储在文件id_rsa_ssh中。

然后,bzr正常工作,登录时我使用

[user1@cl]$ ssh -i id_rsa_ssh user2@srv

表示使用替代身份。