解决ssh-copy-id复制错误的问题
linux下,可以使用ssh-copy-id命令,把密钥复制到远程主机,以实现无密码登录。
相关用法可以看我另一篇文章:Linux服务器使用密钥登录
ssh-copy-id基本用法如下:
1 | ssh-copy-id -i myid.pub foo@remotehost |
其中,-i是指定密钥文件的具体位置。
但是在实际使用过程中,经常会出现错误,具体如下:
1 | ~ ssh-copy-id -i /xxx/my_key.pub foo@192.168.1.23 |
上面的错误提示,意思是找不到密钥文件,但其实密钥文件是存在的。
错误提示还建议使用-f参数来强制写入,经我测试,确实可以正确写入,但是有个大坑要注意:
在使用-f参数时,-f参数一定要写在-i的前面,不然还是报一样的错误,如下:
正确的格式:
1 | ~ ssh-copy-id -f -i /xxx/my_key.pub foo@192.168.1.23 |
错误的格式:
1 | ~ ssh-copy-id -i /xxx/my_key.pub foo@192.168.1.23 -f |