SSH秘钥远程登录

版权声明:©来自CSDN博客作者"李在奋斗"的原创作品,如需转载,请注明出处 https://blog.csdn.net/qq_31725371/article/details/82867313

SSH秘钥远程登录

  1. 基于ssh远程登陆

客户端首次远程登录机器的时候会把远程机器的公钥保存在~/.ssh/know_hosts,以后每次登陆到某服务器的时候都会对比远程机器的公钥和存在本机的该服务器的公钥,如果不同就会终止登陆,防止黑客伪装服务器

  • 如果发现远程登陆不上的时候,首先检查sshd服务是否开启,再检查是否是know_hosts文件。以前可以登陆现在不行,一般是系统有过重装但是IP并未随着改变,导致以前的公钥匹配不上现在的公钥
  1. 基于秘钥远程登陆
1. ssh key使用非对称加密方式生成公钥和私钥
2. 私钥存放在~/.ssh目录下,在/etc/ssh/sshd_config中有定义私钥文件位置“AuthorizedKeysFile      .ssh/authorized_keys”
3. 公钥用于对外开放,存放在服务器的~/.ssh/authorized_keys中
4. ssh-add命令可以添加自定义名称的key
5. 服务器把相关的公钥和私钥存在/etc/ssh/key中
  • A服务器创建秘钥
-t:指定要创建的密钥类型。
-C:添加注释;
-f:指定用来保存密钥的文件名;
// 创建一个rsa类型的秘钥,备注为lishengsheng,默认一路回车
[root@localhost .ssh]# ssh-keygen -t rsa -C lishengsheng 
// 会在/root/.ssh目录下生成一个公钥一个私钥
[root@localhost .ssh]# ls       
id_rsa  id_rsa.pub  known_hosts

  • 将A服务器公钥发送到B服务器,输入密码后自动建立authorized_keys文件

[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

//然后A服务器的root用户就可以免密码登陆B服务器了
[root@localhost .ssh]# ssh [email protected]
Last login: Wed Sep 26 23:40:52 2018 from 192.168.1.3
[root@localhost ~]# 
//想使用普通用户免密码登陆,将公钥发往普通用户输入密码后即可
[root@localhost ~]# ssh-copy-id ~/.ssh/id_rsa.pub [email protected]
[root@localhost ~]# ssh [email protected]
Last login: Thu Sep 27 01:03:36 2018
[lss@localhost ~]$ 


  • 可能遇到的错误
no route to host        #防火墙没关
Connection refused      #防火墙或sshd服务没开
  1. Xshell 下使用秘钥登陆
  • 生成秘钥
    在这里插入图片描述
  • 将秘钥内容复制,写入对应服务器的~/.ssh/authorized_keys 中
    在这里插入图片描述
    在这里插入图片描述

然后即可直接秘钥登陆了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_31725371/article/details/82867313