Xshell6配置ssh免密码登录虚拟机

首先先说明一下有密码的,涉及到root登陆权限的问题:

1、用超级管理员身份登录,修改 vi  /etc/ssh/sshd_config,

   

   找到

     

把其中的permitRootLogin 修改成:

   # Authentication:
   LoginGraceTime 120
   PermitRootLogin yes
   StrictModes yes

这个语句就控制着Xshell是否可以用root连接

 

接着说一下Xshell如何无密连接虚拟机:

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux的方法。
使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。

 

一、生成密钥公钥(Public key)与私钥(Private Key)

打开xshell中的工具下的新建用户密钥生成导向

 

 

 

 

在“密钥类型”项选择“RSA”公钥加密算法,“密钥长度”选择为“2048”位密钥长度

 

 

 

保存在桌面

之后完成即可

二、放置公钥(Public Key)到服务器

使用Xftp将文件发送到虚拟机(没有此工具的可以参考前面的博客):

 

 

 

 然后运行如下命令,将公钥(Public Key)导入到“authorized_keys”文件:

 

 

三、配置ssh客户端使用密钥登录。

打开xshell,填写主机地址,选择22端口

 

 方法选择public key,用户名一般为root,选择用户密钥,填写刚才设置的密码

 

 最后,就可以用Xshell无密远程连接虚拟机了

 

 

 

 

注意:在最后一步遇到了一些问题,开始用Xshell连接显示没有在远程主机上注册,最后在/etc/ssh/sshd_config里面发现AuthorizedKeysFile      .ssh/authorized_keys​​,这条语句前需要加上/home,否则找不到证书,这是绝对路径可以理解,但是为什么有的人不加也可以远程登陆呢?

 

答案:root用户的家目录是root,普通用户的家目录是home,我需要远程连接root用户,应该把.ssh文件放在root目录下,而不是home目录下,这样就可以找到密钥证书了!

posted @ 2019-10-26 19:49  N0r4h  阅读(2933)  评论(0编辑  收藏  举报