ubuntu16.04集群之间配置SSH免密码登陆与原理详解

环境

vmware14.1虚拟机中三台ubuntu16.04

ip地址映射关系:如下

127.0.0.1     localhost
192.168.184.131  vm-01
192.168.184.132  vm-02
192.168.184.133  vm-03

(1) 安装Openssh服务端

首先,我们需要更新我们的本地库索引。所以如下所见,我们需要先输入“apt-get update”

sudo apt-get update

通过以下命令安装openssh-server:

sudo apt-get install openssh-server

(2) 开启openssh服务

在OpenSSH已经成功安装在Ubuntu14.04操作系统上了之后,我们要启动OpenSSH的服务。以下命令让你启动/开启服务。

sudo service ssh start

或者

sudo /etc/init.d/ssh start

(3) 配置密钥对

安装并启动了OpenSSH服务以后。接下来就是要生成公私钥对的时候了,在终端中运行以下命令:

ssh-keygen -t rsa

在运行完以上命令了以后,我们需要回答一系列的问题。首先选择保存密钥的路径,按回车将会选择默认路径即家目录的一个隐藏的.ssh文件夹。下一个提示是请输入口令提醒。我个人将此留空(直接回车)。之后密钥对就会创建,大功告成。

在密钥对生成以后,我们需要将客户端上的公钥复制到SSH服务端或者主机,来创建对客户端的信任关系。运行以下命令复制客户端的公钥到服务端。

ssh-copy-id user@ip_address #user换成自己的用户名,ip_address换成对应的主机ip地址

至此,基本上实现了客户端与服务器端得免密钥登陆了。下面是一些可选得操作。

**可选操作1 ssh localhost免密登陆 **

将公钥添加到本地主机认证中,执行下面的命令:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys 

然后测试:ssh localhost 无需密码即可登录则成功。

可选操作2 禁用密码登陆

在公钥上传之后,我们现在可以禁用通过密码登陆SSH的方式了。为此,我们需要通过以下命令用文本编辑器打开/etc/ssh/ssh_config。

sudo vim /etc/ssh/sshd_config

主要找到下面的三行,修改成下面的样子

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

(4) 重启SSH服务

最后,在我们配置完SSH服务端后,为了使改动生效我们需要重启SSH服务。在终端或控制台运行以下命令重启。

 sudo service ssh restart

sudo /etc/init.d/ssh restart

现在,我们可以试试不用密码仅用密钥对的方式登录ssh服务端了。

总结

太好了!我们成功的配置了无密码登录SSH。使用加密密钥对进行SSH服务器认证是非常安全的一种做法,如果你想为SSH的单一用户登录实施安全的认证这也是备受推崇的方式。

参考资料:

提高Ubuntu的SSH登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm

开启SSH服务让Android手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm

如何为Linux系统中的SSH添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm

在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm

Linux 上SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm

SSH入门学习基础教程 http://www.linuxidc.com/Linux/2014-06/103008.htm

SSH免密码登录详解

你可能感兴趣的:(linux学习,精华创作)