[linx学习篇] ssh远程服务器免密码

第一步:生成密钥。在终端下执行命令:

  1. ssh-keygen -t rsa

一路回车,各种提示按默认不要改,等待执行完毕。然后执行:

  1. ls ~/.ssh
  2. #可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥)

第二步:放置公钥到Linux服务器。使用scp命令:

  1. scp ~/.ssh/id_rsa.pub cssor@cssor.com:/home/cssor/.ssh/

然后把id_rsa.pub的内容加入到服务器端的默认验证文件authorized_keys,执行:

  1. #先登录到远程服务器
  2. cd ~/.ssh
  3. cat -n /home/cssor/.ssh/id_rsa.pub >> authorized_keys #将公钥内容加入到authorized_keys文件,没有则新建一个就行

第三步:配置本地ssh config文件。执行:

  1. vi ~/.ssh/config

加入以下内容:

  1. Host cssor_server #别名,域名缩写
  2. HostName cssor.com #完整的域名
  3. User cssor #登录该域名使用的账号名
  4. PreferredAuthentications publickey #有些情况或许需要加入此句,优先验证类型ssh
  5. IdentityFile ~/.ssh/id_rsa #私钥文件的路径

经过以上操作以后,已经大功告成,感谢一同事帮忙,虽然他用的是Ubuntu系统。
使用ssh cssor_server或ssh cssor.com就可以直接登录到远程服务器了。并且如果git服务器也是搭建在同一个Linux主机上,本地执行git pull等也不需要密码再次登录了。

以上比较要注意的是: 公钥要放在登录服务器所用的账号的家目录下,比如你用 abc登录远程服务器,就要把公钥 放到 /home/abc/.ssh/下, authorized_keys文件也是在这个目录下。我曾因为放错账号目录,导致失败。

附ssh config一个资料:http://nerderati.com/2011/03/simplify-your-life-with-an-ssh-config-file/

http://cssor.com/mac-ssh-auto-login-server.html

posted @ 2017-06-23 16:00  liuzhipenglove  阅读(248)  评论(0编辑  收藏  举报