我希望通过ssh从一个用户/客户端组合(例如,user1@cl
)访问用户/服务器组合(例如,user2@srv
),具有两种不同类型的Access:
访问类型#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将是一个登录shell。
为此,我在~user2/.ssh/authorized_keys
中添加了“通常”行(#2)
ssh-rsa ... user1@cl
据我所知,正如我测试的那样,两条线都不能同时使用。
即,如果第一行出现在~user2/.ssh/authorized_keys
中,那么我将能够与bzr repo进行交互,但我将无法做到
[user1@cl]$ ssh user2@srv
如果第2行首先出现在~user2/.ssh/authorized_keys
中,那么我可以执行ssh
,但任何bzr
操作都会给出
bzr: ERROR: Not a branch ...
有什么方法可以解决这个问题吗?
我使用的是RHEL7,但我想这并不重要。
相关帖子(但根据我的理解,不解决我的案例):
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
https://askubuntu.com/questions/1962/how-can-multiple-private-keys-be-used-with-ssh
答案 0 :(得分:0)
我使用了两个不同的密钥对(比如bzr
的对1和ssh
登录的对2)。
我在~user2/.ssh/authorized_keys
中添加了相应的行。
私钥1存储在文件id_rsa
中(默认读取),
私钥2存储在文件id_rsa_ssh
中。
然后,bzr
正常工作,登录时我使用
[user1@cl]$ ssh -i id_rsa_ssh user2@srv
表示使用替代身份。