CallMeSurprise

Linux环境下安装ssh

前言

在配置 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书本介绍,使用下面的命令:

1
# apt-get install ssh

这里是管理员账号,因此不需要使用sudo提升权限。普通用户注意在前面加上sodo

或者使用下面的命令:

1
# apt-get install openssh-client

启动服务

管理员权限下:

1
# /etc/init.d/ssh stop          //停止
# /etc/init.d/ssh start         //启动
# /etc/init.d/ssh restart       //重启

OR

1
# service ssh start
# service ssh stop
# service ssh restart

如果有警告提示的话,可以尝试第二种service方式。警告提示:

1
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
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:~#

之后继续进行的所有的操作都是通过ssh登录本机进行的。

查看服务

可以通过命令:

1
# ps -e|grep ssh

查看ssh相关服务有没有开启,或者针对性的关闭多余服务(#kill -9 3717)

其实上面第一种方式操作开启ssh服务的时候,服务已经启动起来了:

1
root@Tbox:~/.ssh# ps -e|grep ssh

  2660 ?        00:00:00 ssh-agent
  3717 ?        00:00:00 sshd

退出ssh

直接在终端中输入exit即可

演示如下:

1
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#

配置

修改/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