centos6.5 ssh 安装,centos6.10安装教程
升级openssh出错,求大神指点怎么解决
一、环境描述
1)操作系统:CentOS 6.5 64位
2)Openssl升级前版本:openssl 0.9.8e
3)Openssl升级后版本:openssl 1.0.1j(源码安装)
4)Openssh升级前版本:openssh-4.3p2-41.el5
5)Openssh升级后版本:openssh_6.7p1(源码安装)
6)连接工具SecureCrt
二、安装Dropbear代替OpenSSH
安装dropbear只是为了在升级失败sshd启动不起来时,依然可以登录系统。也可以用其他工具代替,比如telnet
1)下载dropbear安装包
2)检查安装依赖包
rpm-qa zlib* gcc make
3)编译安装dropbear
# tar jxf dropbear-2014.66.tar.bz2
# cd dropbear-2014.66
#./configure
# make&& make install
检查生成的文件是否正确:
4)生成证书
#/usr/local/bin/dropbearkey-t dss-f/etc/dropbear/dropbear_dss_host_key(注:系统默认是没有/etc/dropbear目录的需要自行到创建)
#/usr/local/bin/dropbearkey-t rsa-s 4096-f/etc/dropbear/dropbear_rsa_host_key
5)启动dropbear
#/usr/local/sbin/dropbear-p 2222//监听2222端口
查看是否启动成功:
三、升级OpenSSL到openssl-1.0.1j,并删除老版本
1)升级前准备
下载openssl-1.0.1j
2)删除旧版本
#rpm-e `rpm-qa| grep openssl`--allmatches--nodeps
3)安装openssl,一定记得加上--shared选项,否则openssh编译的时候会找不到新安装的openssl的library,会报错: openssl的 header和library版本不匹配
(注:这里LZ纠结了很久,如果按照步骤执行./config--prefix=/usr--shared依然报错: openssl的 header和library版本不匹配,很可能是由于之前安装的Openssl也是源码安装的,而且没有删除干净,需要手工搜索ssl相关的文件
1.执行find/-name ssl
2.将搜索结果中/usr/lib/usr/lib64/lib64/lib等目录下的结果逐一重命名,千万不要乱删除,逐一尝试。这是个笨办法,目前还没有发现啥比较好的办法。)
#./config--prefix=/usr--shared
# make
# make test
# make install
完毕后查看openssl版本安装是否正确
# openssl version-a
四、升级sshd到OpenSSH-6.7并删除老版本ssh
1)升级前准备
查看是否缺包
# rpm-qa| egrep"gcc|make|perl|pam|pam-devel"
如果有配置yum了的话可以直接yum安装这些包,这样既可以检验是否装了,没装的直接装上。
yum-y install gcc* make perl pam pam-devel
2)下载openssh-6.7p1.tar.gz
备份ssh:
# mv/etc/ssh/etc/ssh.bak
# openssl version-a
3)编译安装新版本openssh
# tar zxf openssh-6.7p1.tar.gz&& cd openssh-6.7p1
#./configure--prefix=/usr--sysconfdir=/etc/ssh--with-pam--with-zlib--with-md5-passwords
# make
先卸载完旧版本的openssh,再make install
# rpm-qa| grep openssh
# rpm-e `rpm-qa| grep openssh`
Openssh-askpass是用于图形界面下输入口令的,用不着可以不装
# make install
4)查看是否升级到新版本
5)复制启动脚本到/etc/init.d
# cp/root/openssh-6.7p1/contrib/RedHat/sshd.init/etc/init.d/sshd
加入开机自启
# chkconfig--add sshd
6)启动sshd,用start或reload。不要restart,restart会直接断开连接,而并不会接着启动sshd服务,这时候要通过其他途径进入机器,然后启动sshd服务才行。
四、删除dropbear。
终端软件里再重新打开一个标签,
在这里Dropbear用来防止升级不成功,用来替代openssh连接服务器。
在开启2222端口(dropbear启动时的端口,可以设置别的)的情况下,通过xshell连接的方法是:
ssh 192.168.0.1 2222(192.168.0.1为需要连接的服务器ip)
删除dropbear安装的文件,并杀掉进程
# rm-rf/etc/dropbear//usr/local/sbin/dropbear/usr/local/bin/dropbear*
CentOS哪个版本好
CentOS已经发行了很多个版本,最新的一版是基于x86_64平台的CentOS 8.0.1905。
1、CentOS 7.4以后的新发行版,安全性相对比较高,一些漏洞(如openssh的)都修复了;镜像源的支持比较好。
2、如果想用相对比较稳定的,建议至少使用 CentOS 6.9或Centos6.4,最好不要再低了。
3、如果是个人的博客、网站,CentOS 6和7系列都可以。采用最新版,可尝试新鲜功能。
4、如果是公司的生产环境,还是以大环境为好,因为有一定的经验积累,推荐CentOS 6.5或者6.8。
5、有要安装宝塔Linux6.0版本的用户,因为宝塔是基于centos7开发的,建议使用centos7.x系统。
扩展资料:
CentOS基本组成
1、进程调度子系统模块
进程调度控制进程对CPU资源的访问。Linux采取基于优先级的调度算法选择进程,所采取的调度策略是各个进程能够公平合理的访问CPU资源,同时保证内核能及时操作硬件。
2、内存管理子系统模块
内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的兑换。硬件相关的部分为内存管理硬件提供了虚拟接口。通常在物理内存不足的时候,系统就会根据当前使用的程序块保留在内存中执行,其余的都保留在磁盘中,并在需要的时候交换回来。
3、文件系统子系统模块
虚拟文件系统提供了多达数十种不同类型的逻辑文件系统和驱动程序。其中,逻辑文件系统是指Linux操作系统所支持的的文件系统(ext3、ext4、fat)等,设备的驱动程序是指为每一种硬件控制器所编写的设备驱动模块程序。
参考资料来源:百度百科-CentOS
centos 6.5怎么搭建hadoop2.7.3
总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs、mapreduce等主从关系。
1、环境,3台CentOS6.5,64位,Hadoop2.7.3需要64位Linux,操作系统十几分钟就可以安装完成,
Master 192.168.0.182
Slave1 192.168.0.183
Slave2 192.168.0.184
2、SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys
(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
(2)输入命令,ssh-keygen-t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys
ssh root@192.168.0.183 cat~/.ssh/id_rsa.pub>> authorized_keys
ssh root@192.168.0.184 cat~/.ssh/id_rsa.pub>> authorized_keys
(4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
(5)完成,ssh root@192.168.0.183、ssh root@192.168.0.184就不需要输入密码了
3、安装JDK,Hadoop2.7需要JDK7,由于我的CentOS是最小化安装,所以没有OpenJDK,直接解压下载的JDK并配置变量即可
(1)下载“jdk-7u79-linux-x64.gz”,放到/home/java目录下
(2)解压,输入命令,tar-zxvf jdk-7u79-linux-x64.gz
(3)编辑/etc/profile
export JAVA_HOME=/home/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
(4)使配置生效,输入命令,source/etc/profile
(5)输入命令,java-version,完成
4、安装Hadoop2.7,只在Master服务器解压,再复制到Slave服务器
(1)下载“hadoop-2.7.0.tar.gz”,放到/home/hadoop目录下
(2)解压,输入命令,tar-xzvf hadoop-2.7.0.tar.gz
(3)在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name
5、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.182:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
</configuration>
6、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.0.182:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
7、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.0.182:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.0.182:19888</value>
</property>
</configuration>
8、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.0.182:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.0.182:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.0.182:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.0.182:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.0.182:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>768</value>
</property>
</configuration>
9、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了,
export JAVA_HOME=/home/java/jdk1.7.0_79
10、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
192.168.0.183
192.168.0.184
11、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送,
scp-r/home/hadoop 192.168.0.183:/home/
scp-r/home/hadoop 192.168.0.184:/home/
12、在Master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.0目录
(1)初始化,输入命令,bin/hdfs namenode-format
注意:执行这步的时候可能会报一个错误:
java.net.UnknownHostException: tiancunPC: tiancunPC: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
at org.apache.hadoop.net.DNS.resolveLocalHostname(DNS.java:264)
at org.apache.hadoop.net.DNS.<clinit>(DNS.java:57)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:982)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:591)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:157)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:992)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1434)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)
Caused by: java.net.UnknownHostException: tiancunPC: unknown error
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
... 8 more
16/11/11 19:15:23 WARN net.DNS: Unable to determine address of the host-falling back to"localhost" address
java.net.UnknownHostException: tiancunPC: tiancunPC: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
at org.apache.hadoop.net.DNS.resolveLocalHostIPAddress(DNS.java:287)
at org.apache.hadoop.net.DNS.<clinit>(DNS.java:58)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:982)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:591)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:157)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:992)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1434)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)
Caused by: java.net.UnknownHostException: tiancunPC: unknown error
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
... 8 more
linux中使用hostname查看为:
[root@tiancunPC hadoop-2.7.3]# hostname
tiancunPC
查看/etc/hosts为:
[root@tiancunPC hadoop-2.7.3]# cat/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
难怪会映射不到,修改/etc/hosts
[root@tiancunPC hadoop-2.7.3]# cat/etc/hosts
127.0.0.1 tiancunPC localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
对应修改另外两个机器的主机名,在执行那个命令就可以了
(2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
执行sbin/start-all.sh可能会有错误提示:
maps to localhost(IP), but this does not map back to the address
解决办法:
修改/etc/ssh/ssh_config
vim/etc/ssh/ssh_config
GSSAPIAuthentication no
这个时候可能还会出现这个错误提示:
hadoop出现namenode running as process 18472. Stop it first.,hadoopnamenode
解决办法:重新启动一下hadoop
(3)停止的话,输入命令,sbin/stop-all.sh
(4)输入命令,jps,可以看到相关信息