我想通过ssh访问一个用户/客户端组合(比如user1@cl )到一个用户/服务器组合(比如说user2@srv ),这个组合有两种不同types的Access:
访问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
访问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
这表示使用替代身份。