OpenSSH is the premier connectivity tool for remote login with the SSH protocol. It encrypts all traffic to eliminate eavesdropping, connection hijacking, and other attacks. In addition, OpenSSH provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.
The OpenSSH suite consists of the following tools:
- Remote operations are done using ssh, scp, and sftp.
- Key management with ssh-add, ssh-keysign, ssh-keyscan, and ssh-keygen.
- The service side consists of sshd, sftp-server, and ssh-agent.
01、下载
http://www.openssh.com/ ###官网
openssh-7.4p1.tar.gz:点击下载
openssh-7.4p1.tar.gz:http://pan.baidu.com/s/1c1RUbeS
02、OpenSSH安装前准备工作
yum install -y zlib-devel gcc gcc-c++ openssl-devel #openssl也是有漏洞的,建议也升级下openssl
03、卸载旧版本openssh
[root@lab- tmp]# rpm -qa |grep openssh
openssh-.3p1-.el6.x86_64
openssh-askpass-.3p1-.el6.x86_64
openssh-clients-.3p1-.el6.x86_64
openssh-server-.3p1-.el6.x86_64
移除openssh
[root@lab- tmp]# rpm -e openssh-5.3p1-94.el6 openssh-askpass-5.3p1-94.el6 openssh-clients-5.3p1-94.el6 openssh-server-5.3p1-94.el6
--nodeps
warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave
删除遗留垃圾文件
rm -rf /etc/ssh/* #前提没有重大的配置变化,有的话建议备份下
04、编译安装
tar zxvf openssh-7.4p1.tar.gz
cd openssh-7.1
./configure --prefix=/usr --sysconfdir=/etc/ssh
make && make install
05、修改配置及启动脚本
vim /etc/ssh/sshd_config
PermitRootLogin yes #开放root远程登录认证,默认是不允许的
修改sshd
openssh-7.4p1\contrib\redhat\sshd.init #根据发行版本取不同的脚本
/etc/initd/sshd
#!/bin/bash
#
# Init file for OpenSSH server daemon
#
# chkconfig:
# description: OpenSSH server daemon
#
# processname: sshd
# config: /etc/ssh/ssh_host_key
# config: /etc/ssh/ssh_host_key.pub
# config: /etc/ssh/ssh_random_seed
# config: /etc/ssh/sshd_config
# pidfile: /var/run/sshd.pid # source function library
. /etc/rc.d/init.d/functions # pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd RETVAL=
prog="sshd" # Some functions to make the below more readable
SSHD=/usr/sbin/sshd #注意路径对不
PID_FILE=/var/run/sshd.pid do_restart_sanity_check()
{
$SSHD -t
RETVAL=$?
if [ $RETVAL -ne ]; then
failure $"Configuration file or keys are invalid"
echo
fi
} start()
{
# Create keys if necessary
/usr/bin/ssh-keygen -A #注意根据实际情况调整
if [ -x /sbin/restorecon ]; then
/sbin/restorecon /etc/ssh/ssh_host_key.pub #根据实际情况调整
/sbin/restorecon /etc/ssh/ssh_host_rsa_key.pub
/sbin/restorecon /etc/ssh/ssh_host_dsa_key.pub
/sbin/restorecon /etc/ssh/ssh_host_ecdsa_key.pub
fi echo -n $"Starting $prog:"
$SSHD $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq ] && touch /var/lock/subsys/sshd
echo
} stop()
{
echo -n $"Stopping $prog:"
killproc $SSHD -TERM
RETVAL=$?
[ $RETVAL -eq ] && rm -f /var/lock/subsys/sshd
echo
} reload()
{
echo -n $"Reloading $prog:"
killproc $SSHD -HUP
RETVAL=$?
echo
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
condrestart)
if [ -f /var/lock/subsys/sshd ] ; then
do_restart_sanity_check
if [ $RETVAL -eq ] ; then
stop
# avoid race
sleep
start
fi
fi
;;
status)
status $SSHD
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
RETVAL=
esac
exit $RETVAL
chmod +x /etc/init.d/sshd
重启sshd服务
service sshd restart #注意可能,当前在线的ssh终端会掉线,不过重新在连接就OK了
chkconfig sshd on #添加到开机启动项中
06、报错解决
安装报错信息解决方法:
configure: error: in `/usr/src/openssh-7.4p1':
configure: error: no acceptable C compiler found in $PATH
安装gcc编译器: yum install -y gcc
configure: error: *** zlib.h missing - please install first or check config.log ***
安装相关依赖包: yum -y install openssl openssl-devel #基本不升级openssl模式下编译openssh
查看OpenSSH版本号: ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.1e-fips 11 Feb 2013
openssh不同版本的影响差异:https://sanwen8.cn/p/1f38HVm.html
openssh版本的命令:http://www.cnblogs.com/xiaochina/p/6280368.html