首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用命令行将ssh公钥添加到Mikrotik路由器设备?

问如何使用命令行将ssh公钥添加到Mikrotik路由器设备?
EN

Stack Overflow用户
提问于 2021-08-19 10:35:21
回答 1查看 2.7K关注 0票数 0

Mikrotik不支持ssh-copy-id,它将~/.ssh/id_rsa.pub复制到几乎所有Linux设备上主机的.ssh/authorized_keys文件中。

是否有同样的方法来授权Mikrotik RouterOS设备上的密钥,这样我就不需要键入密码,而是使用密钥或解锁密钥和ssh代理自动登录?

EN

回答 1

Stack Overflow用户

发布于 2021-08-19 10:35:21

Mikrotik RouterOS只允许您从复制的文件中导入密钥,但您可以从命令行创建此文件。以下是任何Linux主机都应该运行的一行代码:

代码语言:javascript
复制
 ssh 192.168.88.1 "/file print file=mykey; file set mykey contents=\"`cat ~/.ssh/id_rsa.pub`\";/user ssh-keys import public-key-file=mykey.txt;/ip ssh set always-allow-password-login=yes"

这就是你所需要做的。

解释

上面的逐行版本:

代码语言:javascript
复制
 $ ssh user@router
 [user@router] > /file print file=mykey;
 [user@router] > /file set mykey contents="copy and paste contents of ~/.ssh/id_rsa.pub here";
 [user@router] > /user ssh-keys import public-key-file=mykey.txt
 [user@router] > /ip ssh set always-allow-password-login=yes"

Mikrotik的默认设置是在加载ssh密钥后禁用密码登录。最后一行保留密码登录,直到您准备显式禁用密码为止。

这将允许您简单地使用ssh,而不会被路由器提示输入密码。请注意,如果您的私钥受到密码保护,系统将提示您输入私钥文件密码,但该密码不会发送到路由器。您可以使用ssh-agent和ssh-add在主机上缓存私钥,如果它是密码保护的--这是强烈推荐的--否则任何拥有副本的人都可以访问允许您的密钥的所有路由器。

加速初始连接

ssh的另一个可用性提示--如果将以下内容添加到/etc/ssh/ssh_config中,那么连接将保持打开--并重用--这大大加快了登录大量设备的速度:

代码语言:javascript
复制
 ControlMaster auto
 ControlPath ~/.ssh/socket-%r@%h-%p
 ControlPersist 600

唯一的障碍是,如果连接超时,如果在超时内重新连接,则连接将挂起。当然,您可以手动删除套接字,您可以使用find .ssh/sock*找到该套接字。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68846248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档