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

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

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

  1. 访问类型 #1 将仅限于与 Bazaar 存储库的交互。为此,我添加了一行 (#1),如下~user2/.ssh/authorized_keys所示

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

    ssh-rsa ... user1@cl
    

据我了解,也经过测试,两条线路不能同时使用。也就是说,如果第 1 行首先出现在 中~user2/.ssh/authorized_keys,那么我将能够与 bzr 存储库交互,但我将无法执行

[user1@cl]$ ssh user2@srv

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

bzr: ERROR: Not a branch ...

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

相关帖子(但据我所知,并未涉及我的情况):

https://stackoverflow.com/questions/2419566/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

ssh 如何使用多个私钥?

答案1

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

然后,bzr就可以正常工作了,并且我使用

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

这表明使用了替代身份。

相关内容