SSH安装设置都需要注意什么?什么是安全外壳协议的严格定义是?

来源:创视网 时间:2023-01-30 13:47:16

SSH安装、设置

在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。

首先要保证每台机器上都装了SSH服务器,且都正常启动。实际中我们用的都是OpenSSH,这是SSH协议的一个免费开源实现。ssh安装很简单,$ sudo apt-get install openssh-server

以本文中的三台机器为例,现在frank-1是主节点,它需要主动发起SSH连接到frank-2和frank-3,对于SSH服务来说,frank-1就是SSH客户端,而frank-2、frank-3则是SSH服务端,因此在frank-2,frank-3上需要确定sshd服务已经启动(安装成功后,即启动,同时也是随系统的启动而启动的,可用$ netstat -ntl 查看网络状态,ssh默认端口22)。

简单的说,在frank-1上需要生成一个密钥对,即一个私钥,一个公钥。将公钥拷贝到frank-2,frank-3上,这样,比如当frank-1向frank-2发起ssh连接的时候,frank-2上就会生成一个随机数并用frank-1的公钥对这个随机数进行加密,并发送给frank-1;frank-1收到这个加密的数以后用私钥进行解密,并将解密后的数发送回frank-2,frank-2确认解密的数无误后就允许frank-1进行连接了。这就完成了一次公钥认证过程。

对于本文中的三台机器,首先在frank-1上生成无需登录密码的密钥对:

$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

这个命令将为frank-1上的用户frank生成其密钥对。生成的密钥对id_dsa,id_dsa.pub,默认存储在/home/frank/.ssh目录下。然后将id_dsa.pub的内容追加到每个机器(也包括本机)的/home/frank/.ssh/authorized_keys文件中,即下面的操作:

对于frank-1

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ scp ~/.ssh/id_dsa.pub frank-3:/home/frank

对于frank-2(frank-3同frank-2的方法)

$ mkdir .ssh --------------------先进入frank-2,创建.ssh文件夹

$ scp ~/.ssh/authorized_keys frank-2:/home/frank/.ssh

此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即frank-2机器上frank帐户的密码,当然,你也可以用其他方法将authorized_keys文件拷贝到其他机器上

接着,在三台机器上都需要对sshd服务进行配置(其实是可以不用配置的,完成了上面的那些操作了以后SSH就已经可以工作了),在三台机器上修改文件/etc/ssh/sshd_config

#去除密码认证前面的#

PasswordAuthentication no

AuthorizedKeyFile %h/.ssh/authorized_keys

至此各个机器上的SSH配置已经完成,可以测试一下了,比如frank-1向frank-2发起ssh连接

$ ssh frank-2

如果ssh配置好了,就会出现以下提示信息

The authenticity of host [frank-2] can't be established.

Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.

Are you sure you want to continue connecting (yes/no)?

OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。

然后你会发现不需要输入密码就可以建立ssh连接了,恭喜你,配置成功了

不过,别忘了测试本机ssh frank-1

安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。

SSH由IETF的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。

X 关闭

Copyright   2015-2022 科技讯版权所有   备案号:豫ICP备2021032478号-15   联系邮箱:897 18 09@qq.com