SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
下面主要介绍一下SSH免密码登陆的配置。
在一台机器上可以通过SSH命令向另一台机器发送命令,但是麻烦的是在发送命令的过程中需要输入密码。当我们在配置hadoop集群的时候,机器数量太多,多次输入密码显得太麻烦。通过配置SSH可以免密码登陆机器,对机器进行操作。
实验过程中启动两台虚拟机,IP分别为192.168.8.128和192.168.8.129
在用户目录下存在一个文件夹.ssh,通过ls -la 可以看到,进入该文件夹 cd .ssh,在没有配置过ssh的机器中,该文件夹中只存在一个文件: known_hosts。该文件记录的该机器通过SSH链接其他机器的历史记录(机器),在给文件中记录的机器是在ssh过程中是不需要输入yes确定的,但是需要输入密码。
ssh 192.168.8.129 mkdir /SSHD 该命令的含义是在128上执行,可以在129的根目录下创建文件夹,SSDH,需要输入密码。
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
自己免密码登陆:cp id_rsa.pub authorized-keys 文件不存在的时候运行该命令,要是authorized-keys 存在会覆盖该文件,以前该文件存在的内容会被覆盖,一些其他的SSH配置信息会丢失。authorized-keys中主要记录的是其他机器或者本机器的公钥,在SSH远程登录的时候,如果authorized-keys中含有SSH机器的公钥,就不需要输入密码。
将公钥拷贝到要免登陆的机器上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 文件存在,追加到authorized_keys文件中
或ssh-copy-id 192.168.8.129 将当前机器生成的公钥拷贝给129,方便129免密码登陆