Mikrotik不支持ssh-copy-id
,它将~/.ssh/id_rsa.pub
复制到几乎所有Linux设备上主机的.ssh/authorized_keys
文件中。
是否有同样的方法来授权Mikrotik RouterOS设备上的密钥,这样我就不需要键入密码,而是使用密钥或解锁密钥和ssh代理自动登录?
发布于 2021-08-19 02:35:21
Mikrotik RouterOS只允许您从复制的文件中导入密钥,但您可以从命令行创建此文件。以下是任何Linux主机都应该运行的一行代码:
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"
这就是你所需要做的。
解释
上面的逐行版本:
$ 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
中,那么连接将保持打开--并重用--这大大加快了登录大量设备的速度:
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h-%p
ControlPersist 600
唯一的障碍是,如果连接超时,如果在超时内重新连接,则连接将挂起。当然,您可以手动删除套接字,您可以使用find .ssh/sock*
找到该套接字。
https://stackoverflow.com/questions/68846248
复制相似问题