有些时候,我们在用SSH连接PC和虚拟机时候需要进行文件共享来提高工作效率,因为它比较安全。但如果每次
都要输入密码,就本末倒置了。一般来说,通过修改虚拟机上的/etc/ssh/sshd.config中的#PermitRootLogin no为yes,可以实现免密登录。除此之外,ssh还有另一种利用密钥对进行相互验证的方式。
当生成密匙对之后,在登录的过程中发现仍然需要输入密码,一般来说是密钥对的文件权限问题:不止authorized_keys需要修改文件权限,.ssh文件夹的权限也需要修改。而且,如果配置已经完成了,再回头修改文件权限似乎也不能成功。下面介绍实现免密码登录的具体操作步骤:
(注:操作系统为Ubuntu16.04,且均在root权限下进行)
1. 首先安装SSH
apt-get install openssh-server
2. 在根目录下创建.ssh文件,并将文件权限改为700,即可读写与执行.
cd ~
mkdir .ssh
chmod 700 .ssh
3. 生成密钥文件(一路回车即可);生成的密钥文件就保存在.ssh文件夹下。
ssh-keygen -t rsa
4. 进入密钥对配置文件目录,配置单机回环SSH免密码登录:将公钥id_rsa.pub复制一份,重命名为authorized_keys,并将authorized_keys文件权限改为600,即可读写.
cd .ssh/
cp id_rsa.pub authorized_keys
chmod 600 authorized_keys
5. 使用ssh localhost命令检查是否可以免密登录本机。
ssh localhost
第一次登录的时候需要确认是否连接,输入yes,以后将不再需要输入。 现在我们并不需要输入密码就已经登录成功了。
PS:需要注意的是以上的权限配置数值不是固定的,一般来说公钥.ssh的权限更小即可。