现在还在输密码进入服务器的话,如果频次高的话,显得就很浪费时间。实际上可以通过无密登陆服务器,只需要设置好ssh就可以,这样只要你打开你电脑的终端不管是Mac OS还是Linux输入ssh root@远程服务器IP,这个命令就会自动登陆到远程服务器上,也就不必要记什么密码,而且有的时候记不住经常搞混,登陆不上去很尴尬。实际上原理也不复杂,就是你把你本地(机)的公钥给远程服务器注册一下,等下一次登陆验证就验证ssh就可以了。
环境:
macbook(实际上你用的是linux也一样,至于windows 的windows terminal终端没有实践过)
阿里云CentOS
操作:
步骤一:本地(机)生成公钥------(如果本地有的话直接拷贝公钥就可以)
1 检查是否有密钥
首先你要看所在的这台机有没有现成的公钥,可以先看看你本地的.ssh目录有没有
ls -a ~/.ssh
2 生成ssh密钥
看到有pub公钥文件就说明你已经生成过本地的ssh密钥对了,直接跳过下一步
若果你没有生成密钥对或者想重新生成,可以输入命令
ssh-keygen -t rsa
3 输出复制密钥
实际上你也可以通过vim来打开公钥文件,但是我们可以通过cat命令输出更直接,复制里面的内容就可以
cat ~/.ssh/id_rsa.pub
要复制返回的结果,要复制返回的结果,要复制返回的结果。
重要的事情说三遍,这个操作主要是为了获得公钥内容,而上面的操作就是返回公钥内容。
步骤二:登陆目标主机配置密钥文件
1 检查是否有authorized_keys文件,没有就要创建
首先到对应目录查找
cd ~/.ssh/
ls // 查看是否有`authorized_keys`文件
ls命令在该目录下没有找到,就说明没有需要自己去创建,记住一定是在当前目录下创建。
touch ~/.ssh/authorized_keys
2 将你刚才复制的本地(机)的公钥内容添加进去
有的文章采用的是,下面这种重定向的方式
echo "这里是复制的公钥内容,双引号不能省略" >> ~/.ssh/authorized_keys
但是我更喜欢用vim,可能是复制粘贴惯了,这里要注意的一点就是这个authorized_keys文件可不可以配置多个公钥呢?答案是可以的,我测试了一下authorized_keys配置两个是没问题的,是可以登上去的,当然还是要分开不要弄一块。下面是我的authorized_keys文件配置两个的截图
步骤三:本地(机)无密登陆远程服务器
实际上一切顺利的话,就只要输入ssh root@IP。
当然也有不顺利的时候,会遇到什么问题呢?就是登陆说你这个不对balabala,让你添加正确的密钥,比如下面的报错
Add correct host key in~/.ssh/known_hosts to get rid of this message
这其实是上次弄证书没过期的问题,你重新生成ssh密钥对可能会出现这个问题,解决方式也很简单,及时清理过期的证书
ssh-keygen -R 这里是你要登陆的远程服务器IP
再输入上面这个命令,就不会出现上面这个问题了。