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目录下,这样就可以找到密钥证书了!