SSH是Secure Shell的缩写,主要用来进行安全远程登录。

正常的SSH登录需要提供用户名和密码,反复输入密码在单机环境下是可以接受的,但是在多机器的机群中这样的重复操作就会比较麻烦。通过公私钥登录可以解决这个问题。

在Ubuntu系统中,如下命令可以完成公私钥登录。

ssh-keygen -t rsa [在master机器上,通过rsa方法生成公私钥]

此时~/.ssh文件夹下会有id_rsaid_rsa.pub

ssh-copy-id ip/hostname [输入对应的slave机器的ip和hostname]

此命令会把对应的公钥拷贝到对应的host机器。

SSH Localhost without password

有些时候我们能需要SSH localhost,也就是用本机ssh本机[这里一般需要安装ssh-sever],比如使用在Hadoop的standalone模式下通过start-dfs.sh或者stop-dfs.sh来启动HDFS。这时,为了避免频繁输入密码,可以使用如下方法

ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys