前言
在配置 Hadoop 集群分布时,要使用 SSH 免密码登录,spark 也是。此处只简单介绍 ssh 的安装,后续的免密码登录在 Spark 配置文章中详细介绍、记录。
简单介绍
维基百科定义:
Secure Shell(缩写为 SSH),由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为一项创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
SSH 有很多功能,它既可以代替 Telnet,又可以为 FTP、POP、甚至为 PPP 提供一个安全的 “通道”。
SSH 分为客户端和服务端。
服务端是一个守护进程,一般是 sshd 进程,在后台运行并响应来自客户端的请求。提供了对远程请求的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端一般是 ssh 进程,另外还包含 scp、slogin、sftp 等其他进程。
SSH 安装及配置
SSH 分客户端 openssh-client 和 openssh-server
好像是 Ubuntu 等 Linux 系统已经有了 openssh-server 服务,因此只需要安装 ssh 服务即可。
安装 ssh
按照王家林 spark 书本介绍,使用下面的命令:
# apt-get install ssh
- 1
这里是管理员账号,因此不需要使用
sudo
提升权限。普通用户注意在前面加上sodo
。
或者使用下面的命令:
# apt-get install openssh-client
- 1
启动服务
管理员权限下:
# /etc/init.d/ssh stop //停止
# /etc/init.d/ssh start //启动
# /etc/init.d/ssh restart //重启
- 1
- 2
- 3
OR
# service ssh start
# service ssh stop
# service ssh restart
- 1
- 2
- 3
如果有警告提示的话,可以尝试第二种 service 方式。警告提示:
root@Tbox:~/.ssh# /etc/init.d/ssh start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service ssh start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start ssh
ssh start/running, process 3717
- 1
- 2
- 3
- 4
- 5
- 6
- 7
即:
root@Tbox:~# service ssh start
- 1
此时则不会出现刚才的提示。
验证是否安装成功
成功的提示如下:
root@Tbox:~/.ssh# ssh localhost
root@localhost's password:
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
298 packages can be updated.
251 updates are security updates.
New release '14.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Your Hardware Enablement Stack (HWE) is supported until April 2017.
Last login: Wed Jun 29 13:55:07 2016 from localhost
root@Tbox:~#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
之后继续进行的所有的操作都是通过 ssh 登录本机进行的。
查看服务
可以通过命令:
# ps -e|grep ssh
- 1
查看 ssh 相关服务有没有开启,或者针对性的关闭多余服务(#kill -9 3717)
其实上面第一种方式操作开启 ssh 服务的时候,服务已经启动起来了:
root@Tbox:~/.ssh# ps -e|grep ssh
2660 ? 00:00:00 ssh-agent
3717 ? 00:00:00 sshd
- 1
- 2
- 3
- 4
退出 ssh
直接在终端中输入 exit 即可
演示如下:
root@Tbox:~# ps -e|grep ssh
2660 ? 00:00:00 ssh-agent
3745 ? 00:00:00 sshd
3748 pts/0 00:00:00 ssh
3749 ? 00:00:00 sshd
root@Tbox:~# exit
logout
Connection to localhost closed.
root@Tbox:~/.ssh# ps -e|grep ssh
2660 ? 00:00:00 ssh-agent
3745 ? 00:00:00 sshd
root@Tbox:~/.ssh#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
配置
修改 / etc/ssh/sshd_config 文件进行参数配置,具体配置根据需要查询资料即可。
之后可以配置公钥私钥,使服务器相互访问。
更多地资料可以查看官方文档,或者参考相关博客。
本文参考文章:
http://www.cnblogs.com/rond/p/3688529.html
http://www.cnblogs.com/xiazh/archive/2010/08/13/1798844.html
http://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html