Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Detailliertes Beispiel für das Upgrade von OpenSh

Detailliertes Beispiel für das Upgrade von OpenSh

零下一度
零下一度Original
2017-06-27 10:09:038815Durchsuche

1. Laden Sie das neueste OpenSh-Paket herunter


2. Bevor Sie openssh aktualisieren, müssen Sie zunächst das Server-Telnet öffnen und sich über Telnet beim Server anmelden, da der Aktualisierungsvorgang dazu führt, dass ssh vorübergehend nicht verfügbar ist

Linux-Telnet-Dienst öffnen:

Überprüfen Sie, ob Telnet installiert wurde:

rpm -qa|grep telnet

telnet-0.17-48 .el6.x86_64

telnet-server-0.17-48.el6.x86_64

Wenn nicht installiert, installieren Sie es über yum

[root@ leotest ~]# yum install telnet

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

Starten Sie den Telnet-Dienst:

Bearbeiten Sie die Telnet-Datei und ändern Sie „disable“ in „no“ Der Telnet-Server bedient Telnet-Sitzungen; er verwendet

# unverschlüsselte Benutzername/Passwort-Paare zur Authentifizierung.

Service Telnet

{

Flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

                                                                                                                                    🎜>

Service xinetd restart

oder:

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

Verbinden Sie sich mit dem Server über Telnet:

[c:~]$ telnet 192.168.5.5

Verbindung zu 192.168.5.5:23...

Verbindung hergestellt.

Um zur lokalen Shell zu wechseln, drücken Sie „Strg+Alt+]“.

Red Hat Enterprise Linux Server Version 6.8 (Santiago)

Kernel 2.6.32-642.el6.x86_64 auf einem x86_64

Login: test

Passwort:

[test@leotest ~]$

standardmäßig

Telnet

kann nur eine Verbindung zu normalen Benutzern herstellen, daher müssen Sie sich als normaler Benutzer anmelden und zum

Root

wechseln

Benutzer

3. Sichern Sie die ursprünglichen OpenSh-bezogenen Dateien: cp /usr/sbin/sshd /usr/sbin/ sshd.bakcp /etc/ssh/ssh_config /etc/ssh/ssh_config.bakcp / etc/ssh/sshd_config /etc/ssh/sshd_config.bakcp /etc/ssh/moduli /etc/ssh/moduli.bak

Hinweis : Löschen Sie die folgenden drei Dateien, andernfalls wird während der Installation ein Fehler gemeldet: /etc/ssh/ssh_config bereits vorhanden, Installation wird nicht überschrieben/etc/ssh/sshd_config existiert bereits, die Installation wird nicht überschrieben

/etc/ssh/moduli existiert bereits, die Installation wird nicht überschrieben

rm /etc/ssh/ssh_config -fr

rm /etc/ssh/sshd_config -fr

rm /etc/ssh/moduli -fr

yum install pam-devel

yum install zlib-devel

yum install openssl-devel

4. Entpacken und installieren Sie 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.4p1- 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: Fehler: *** zlib.h fehlt – bitte zuerst installieren oder config.log überprüfen

#yum install zlib-devel ###configure: Fehler: *** Aktuelles OpenSSL-Libcrypto kann nicht gefunden werden (siehe config.log für Details) ***#yum install openssl openssl-devel

Neu kompilieren:

Vor dem Neukompilieren aufräumen. Kompilierungsinformationen:

sauber machen

ldconfig

[root@leotest openssh-7.4p1]#

./configure --prefix=/usr /local/openssh --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --mandir=/usr/share/man

OpenSSH wurde mit den folgenden Optionen konfiguriert:

                    Benutzerbinärdateien: /usr/bin

                   Systembinärdateien: /usr/sbin

               Konfigurationsdateien: /etc/ssh

                   🎜 >

            sshd-Standardbenutzer PFAD: /usr/bin:/bin:/usr/sbin:/sbin

                    Manpage-Format: doc

                       PAM-Unterstützung: nein

OSF SIA-Unterstützung: nein

                KerberosV-Unterstützung: nein

                  SELinux-Unterstützung: nein

                Smartcard. Unterstützung:

                     S/KEY-Unterstützung: nein

       IP-Adresse im $DISPLAY-Hack: Nein

         SL NUR intern

             Privsep Sandbox-Stil: rlimit

 

              Host: x86_64-pc-linux-gnu

          Compiler: gcc

    Compiler Flags: -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

Präprozessor-Flags:

      Linker-Flags:  -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-all - pie

         Bibliotheken: -lcrypto -lrt -ldl -lutil -lz  -lcrypt -lresolv

 

make && make install

/etc/init. 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“ überschreiben? y

cp: reguläre Datei „/usr/sbin/sshd“ kann nicht erstellt werden:

Textdatei ausgelastet

文件正在被使用

[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@pttlstydb openssh-7.4p1]# kill -9 14865

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

root     24227 14779  0 10:31 pts/1    00:00:00 grep sshd

 

重新覆盖:

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

 

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

Sshd stoppen:                                        [  OK  ]

ssh-keygen: illegale Option – A

Nutzung : ssh-keygen [ Optionen]

Optionen:

 

cat /etc/init.d/sshd

start()

{

# Schlüssel erstellen, falls erforderlich

/usr/bin/ssh-keygen -A

if [ -x /sbin/restorecon ]; dann

/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 wird gestartet :"

$SSHD $OPTIONS && Erfolg || Fehler

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 stoppen:                                           [  OK  ]

Sshd starten:                                            [  OK  ]

Starten von sshd:/etc/ssh/sshd_config Zeile 81: Nicht unterstützte Option GSSAPIAuthentication

/etc/ssh/sshd_config Zeile 83: Nicht unterstützte Option GSSAPICleanupCredentials

 

原因:新版本的openssh不支持以上参数,需要修改sshd的配置文件

 

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

##去掉前面的注释,允许root通过ssh登录

PermitRootLogin ja

 

##注释掉下面三个参数

#GSSAPIAuthentication ja

#GSSAPICleanupCredentials ja

#UsePAM ja

 

 

##在文件末尾加上如下信息,否则还是无法通过ssh登录linux:

导致此问题的原因是ssh 升级后,为了安全,默认不再采用原来一些加密算法,我们手工添加进去即可。

Chiffren aes128-cbc,aes192-cbc,aes256-cbc, aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

MACs hmac-md5,hmac-sha1,umac-64@openssh. com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org

 

 

6.重启sshd服务,测试ssh连接服务器

service sshd restart

[c:~]$ ssh 192.168.5.5

Verbindung zu 192.168.5.5:22 wird hergestellt...

Verbindung hergestellt.

Um zur lokalen Shell zu wechseln, drücken Sie „Strg+Alt+]“.

 

Letzte Anmeldung: Di, 27. Dezember 00:22:10 2016 von 192.168.5.2

[root@leotest ~]# ssh -V

OpenSSH_7.4p1, OpenSSL 1.0.1e-fips 11. Februar 2013

 

 

7.禁用telnet

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

 

# Standard: ein

# Beschreibung: Der Telnet-Server bedient Telnet-Sitzungen; Es verwendet

#       unverschlüsselte Benutzername/Passwort-Paare zur Authentifizierung.

Dienst Telnet

{

Flags = Wiederverwendung

Socket_type = STREAM

Warten = Nein

Benutzer = Root

Server = /usr/in/in.telnetd Stoppen

xinetd

Dienst:[root@leotest ~]# service xinetd stop

Xinetd stoppen:                                                                                                                               

Autostart beim Booten stoppen:

[root@leotest ~]# chkconfig --list xinetdxinetd                                                                                                                                                        aus 3:on 4:on 5:on 6:off

[root@leotest ~]# chkconfig xinetd off

[root@leotest ~]# chkconfig --list xinetd

xinetd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Das Problem war nach dem Upgrade behoben:

Beim Anmelden bei Linux über winscp wurde ein Fehler gemeldet. Die Lösung lautet wie folgt:

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

# Standardeinstellung ohne Subsysteme überschreiben

#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp

Kommentieren Sie das Original aus und ändern Sie es in das folgende internal-sftp

Starten Sie den SSHD-Dienst neu:

Service SSHD-Neustart

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für das Upgrade von OpenSh. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn