SSH免密登录服务器

Posted by xionghongzhi on January 10, 2018

一转眼都已经18年了,又想感叹一次时间的流逝

但在此期间,我突然发现,原本于我而言十分简单的操作,很多都随着时间淡忘了.

虽说Google能够解决我大部分的问题,我还是想着先记录下一些简单/必须的东西.

今天谈谈如何使用SSH进行免密登录,一般而言都不止一种解决方案.

  1. 第一步,使用ssh-keygen命令,在本机上创建认证信息(创建一个公钥和私钥),详情可查看 什么是ssh-keygen, 使用本命令之后,只需要一直回车即可.然后会生成如下的一张图,在终端当中.

  1. 第二步,使用命令ssh-copy-id,将本机的公钥(使用ssh-keygen生成的)传递给我们想要免密登录的那台服务器上,使用命令: ssh-copy-id id@server, 其中id为服务器用户,server为服务器的具体ip. 然后输入密码进入.

  2. 第三步,使用命令ssh id@server, 进行登录,然后就会提示直接进入啦.

当然,如果在第三步的时候提示如下错误:

解决方法,使用ssh-add 命令,将认证信息添加.

指定端口

ssh-copy-id 的默认的执行端口为22,如果客户的端口并非为22,则需要使用参数-p指定默认的端口.

如: ssh-copy-id -p 10996 root@xxx.xxx.xxx

总结一下

当我使用ssh-keygen命令,重新生成一对新的公钥和私钥的时候,之前传递给其他服务器的公钥就会失效,那也就是说,你还需要再一次使用ssh-copy-id user@server 将新的公钥上传到你需要免密登录的服务器上.否则,还是需要输入密码.

因此,慎用ssh-keygen.

在Ubuntu中,可以在:

cd ~/.ssh

中查看本机的公钥和私钥.