从给定的用户1 /客户端到同一用户2 /服务器的多个ssh访问types

我想通过ssh访问一个用户/客户端组合(比如user1@cl )到一个用户/服务器组合(比如说user2@srv ),这个组合有两种不同types的Access:

  1. 访问types#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. 访问types#2将是一个loginshell。 为此,我在~user2/.ssh/authorized_keys添加了一个“常用”行(#2)

     ssh-rsa ... user1@cl 

据我所知,正如我testing,两条线不能同时使用。 也就是说,如果第一行出现在~user2/.ssh/authorized_keys ,那么我将能够与bzr仓库交互,但是我将无法做到

 [user1@cl]$ ssh user2@srv 

如果第2行出现在~user2/.ssh/authorized_keys ,那么我将能够执行ssh ,但是任何bzr操作都会给出

 bzr: ERROR: Not a branch ... 

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

相关post(但据我所知,没有解决我的问题):

https://stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private-keys-on-one-client

什么选项可以放在SSH authorized_keys文件中?

SSH authorized_keys命令选项:多个命令?

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

PS:这也张贴在https://askubuntu.com/questions/949470/multiple-ssh-access-types-from-a-given-user1-client-to-the-same-user2-server 。 我不确定哪一个是最合适的。

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

然后, bzr正常工作,并login我使用

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

这表示使用替代身份。