我想通过 ssh 从一个用户/客户端组合(例如user1@cl
)访问另一个用户/服务器组合(例如user2@srv
),并采用两种不同的访问类型:
访问类型 #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 是登录 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
这表明使用了替代身份。