老王2.2.20版(小工具:sshcopyid_老王的技术手册 ( 我的新博客:http://huoding.com )_百度空间)
欢迎访问我的新主页:http://huoding.com/
服务器时常需要配置无密码的登录方式 ,最一般的设置方式如下:
# ssh-keygen
# cat ~/.ssh/id_rsa.pub | ssh user@server "cat - >> ~/.ssh/authorized_keys"
其实这方法已经很简单了 ,不过我总记不清如何正确拼写authorized_keys这个文件名 。
还好Linux系统里缺省都包含一个名为ssh-copy-id的工具:
# type ssh-copy-id
ssh-copy-id is /usr/bin/ssh-copy-id
你用cat或者more命令看一下就知道ssh-copy-id本身其实就是一个shell脚本 ,用法很简单:
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
再也不用记如何拼写authorized_keys这个文件名了 ,是不是很爽 ,可惜别高兴太早了 ,ssh-copy-id有一个很要命的问题 ,那就是缺省它仅仅支持SSH运行在22端口的情况 ,不过实际上出于安全的需要 ,我们往往都会更改服务器的SSH端口 ,比如说改成10022端口 ,这时候你运行ssh-copy-id就会报错了 ,直接修改ssh-copy-id脚本当然可以修正这个问题,但是那样显得太生硬了 ,实际上还有更好的办法:
# vi ~/.ssh/config
加上内容:
Host server
Hostname ip
Port 10022
你也可以单独只加入Port一行配置 ,那样就是一个全局配置,保存后再运行ssh-copy-id命令就不会报错了 。
补充:经网友提示 ,如果端口不是22 ,不修改config文件 ,按如下方式也可以:
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!