从给定用户 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

哪些选项可以放入 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。我不确定哪一个最合适,因为这个问题并不只与 Ubuntu 有关(也许 Linux 可能是一个很好的目标)。

答案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

这表明使用了替代身份。

相关内容