首頁 > 運維 > linux運維 > 主體

升級openssh的實例詳解

零下一度
發布: 2017-06-27 10:09:03
原創
8763 人瀏覽過

1.下載最新的openssh套件


2.升級openssh之前要先開啟伺服器telnet,透過telnet登入伺服器,因為升級過程中會導致ssh暫時不能用

#開啟linux telnet服務:

查看telnet是否已安裝:

rpm -qa|grep telnet

telnet-0.17-48.el6.x86_64

telnet-server-0.17-48.el6.x86_64

 

如果沒有安裝,透過yum安裝

[root@leotest ~]# yum install telnet

[root@leotest ~]# yum install telnet-server

 

啟動telnet服務:

編輯telnet文件,將disable改成no

[root@leotest xinetd.d]# vi /etc/xinetd.d/telnet

# default: on

# description: The telnet server serves telnet sessions; it uses \

#       unencrypted username/password pairs for authentication.

service telnet

##{

        socket_type     = stream        wait            = no        user          = /usr/sbin/in.telnetd

        log_on_failure  += USERID

     

no

}

 

重啟xinetd服務:

service xinetd restart

or:

/etc/rc.d/init.d/xinetd restart

 

透過telnet連接伺服器:

[c:\~]$ telnet 192.168.5.5

 

 

Connecting to 192.168.5.5:23...

Connection established.

To escape to local shell, press 'Ctrl+Alt+]'.

Red Hat Enterprise Linux Server release 6.8 (Santiago)

Kernel 2.6.32-642.el6. x86_64 on an x​​86_64login: test#Password:[test@leotest ~]$#由於預設telnet

只能連接一般用戶,所以需要登入普通用戶之後跳到

root用戶 

3.備份原openssh相關檔案:

cp /usr/sbin/sshd /usr/ sbin/sshd.bak

#cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bakcp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

cp /etc/ssh/moduli /etc/ssh/moduli.bak

Note:刪除掉下面三個文件,否則安裝的時候會報錯:

/etc/ssh/ssh_config already exists, install will not overwrite

/etc/ssh/sshd_config already exists, install will not overwrite

##/etc/ssh /moduli already exists, install will not overwrite

 

rm /etc/ssh/ssh_config -fr

#rm /etc/ssh/sshd_config -fr

##rm /etc/ssh/sshd_config -fr

rm /etc/ssh/moduli -fr

 

yum install pam-develyum install zlib-develyum install openssl-devel 

 

4.解壓縮並安裝openssh

[root@ leotest softs]# tar -zxvf openssh-7.4p1.tar.gz

[root@leotest softs]# ls

openssh-7.4p1  openssh-7.4p1.tar.gz  openssh-7.4 p1-vs-openbsd.diff.gz

[root@leotest softs]# cd openssh-7.4p1

[root@leotest openssh-7.4p1]#./configure --prefix= /usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --mandir=/usr/share/man

configure: error: * ** zlib.h missing – please install first or check config.log

#yum install zlib-devel

configure: error: *** Can't find recent OpenSSL libcrypto (see config.log for details) ***

yum install openssl openssl-devel 

重新編譯:

### 重新編譯前要先清理先前的編譯資訊:######make clean######ldconfig######[root@leotest openssh-7.4p1]# ### ###./configure --prefix= /usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --mandir=/usr/share/man######OpenSSH 有 been configured with the following options :###

                     使用者使用中位檔案:/usr/bin

                  配置檔案:/etc/ssh

                   Askpass 程式:/usr/ libexec/ ssh-askpass

                     受手冊頁:/usr/share     PID 檔案:/var/run

  權限分離chroot 路徑:/var/empty

            sshd 預設使用者路徑:/usr/bin:/bin:/usr/sbin:/sbin

                        PAM 支援:否

OSF SIA 支援:無

                 KerberosV 支援:無

                  智慧卡支援:

                     S/KEY 支援:無

              MD5 密碼支援:無

                 Solaris 專案支援:無

         Solaris支援no

隨機數來源:OpenSSL僅限內部

             Privsep 沙箱樣式:rlimit

 

          編譯器: gcc

    編譯器標誌:-g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wno-pointer-sign -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv - fno-builtin-memset -fstack-protector -all -fPIE

預處理器標誌:

      連結器標誌: -Wl,-z,relro -Wl,-z,now -Wl ,-z,noexecstack -fstack-protector-all - pie

         函式庫:-lcrypto -lrt -ldl -lutil -lz  -lcrypt -lresolv

## install

/etc/init.d d/sshd restart

 

5.覆寫舊的檔案

#cp -p /softs/openssh-7.4p1 /contrib/redhat/sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

chkconfig --add sshd

#cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

[root@pttlstydb openssh-7.4p1]# cp / usr/local/openssh/sbin/sshd /usr/sbin/ sshd

cp:覆蓋「/usr/sbin/sshd」? y

cp: 無法建立常規檔案`/usr/sbin/sshd':

# 文字檔案繁忙

#檔案正在被使用

[root@pttlstydb openssh-7.4p1]# ps -ef|grep sshd

root     14111     1  0 10:05 ?        00:00:00 sshd: root@pts/0

root     14865     1  0 10:22 ?        00:00:00 sshd: root@notty

root     24182 14779  0 10:30 pts/1    00:00:00 grep sshd

root 殺死#17.死-9 14865

[root@pttlstydb openssh-7.4p1]# ps -ef|grep sshd

root     24227 14779  0 10:31 pts/1  #  00:00:00 g # 00:00:00 g

重新覆寫:

#cp /usr/local/openssh/bin/ssh /usr/bin/ssh

 

#[root @leotest openssh-7.4p1]# service sshd restart

停止sshd:                       OK  ]

ssh-keygen: 非法選項-- A

用法: ssh-keygen [選項]

選項:

 

cat /etc/init.d/sshd

start()

{

# 如果需要建立金鑰

##/usr/bin/ssh-keygen -A

#if [ -x /sbin/restorecon ];然後/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 $"啟動$prog :「

$SSHD $OPTIONS && 成功||失敗

RETVAL=$?

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd

echo

#}

 

因為預設低版本的

#ssh-keygen沒有-A參數##解決方法:

#cp /usr/local/openssh/bin /ssh-keygen /usr/bin/ssh-keygen

 

重啟

sshd

#服務:[root@leotest ssh]# service sshd restart##sshd:                     ##啟動sshd:/etc/ssh/sshd_config 第81 行:不支援的選項GSSAPIAuthentication

/etc/ssh/sshd_config 第83 行:不支援的選項GSSAPICleanupCredentials

## ##原因:新版本的openssh不支援上述參數,需要修改sshd的設定檔

[root@leotest openssh-7.4p1]# vi /etc/ssh/sshd_config

##去掉前面的註釋,允許root透過ssh登入

PermitRootLogin yes

 

##意見掉下面三個參數

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

#UsePAM yes

 

 

##在文件中補充以下訊息,否則還是無法透過ssh登入linux:

#導致此問題的原因是

ssh

升級後,為了安全,預設不再採用原來的一些加密演算法,我們手動添加進去即可。 -cbc,aes256-cbc, aes128-ctr、aes192-ctr、aes256-ctr、3des-cbc、arcfour128、arcfour256、arcfour、blowfish-cbc、cast128-cbcccfour256、arcfour. 、umac-64@openssh。 -group-exchange-sha1, diffie-hellman-group-exchange-sha256、ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、diffie-hellman-group1-sha1、curve25519-sha256@libssh.

 

 

6.重啟sshd

,

測試

ssh

連接伺服器

service sshd restart[c:\~]$ ssh 192.168 .5.5 正在連線至192.168.5.5:22...已建立連線。 Ctrl+Alt+]」。 #上次登入:2016 年12 月27 日星期二00:22:10,來自192.168.5.2#[root@leotest ~ ]# ssh -VOpenSSH_7.4p1, OpenSSL 1.0.1e-fips 2013 年2 月11 日

 

 

#7.取消

telnet

#[root@leotest ~]# vi /etc/xinetd.d/telnet

 

## 預設:on

# 說明:telnet 伺服器提供 telnet 會話服務;它使用 \

##       未加密的使用者名稱/密碼對進行驗證。

        flags           = REUSE

        sock type      = no

        user            = root

       

##        log_on_failure  += USERID

 

  

     disable      ##停掉

xinetd服務:

[root@leotest ~]#           [  OK  ]

停掉開機自啟動:

[root@leotest ~]# chkconfig --list xinetdxinetd                 0:off        1:off        2 :off        3:on        4:on        5:on     ]# chkconfig --list xinetd

xinetd                 0:off           4:off        5:off

#        6:off

#升級後問題解決:透過winscp登入linux報錯,解決方法如下:

[root@leotest ~]# vi /etc/ssh/sshd_config

 

# override default of no subsystems

override default of no subsystems

override default of no subsystems

#    sftp   /usr/libexec/openssh/

#將原來的註解掉,改成下面的internal-sftp

###重啟sshd服務:######service sshd restart######

以上是升級openssh的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板