Maison  >  Article  >  Opération et maintenance  >  Exemple détaillé de mise à niveau d'opensh

Exemple détaillé de mise à niveau d'opensh

零下一度
零下一度original
2017-06-27 10:09:038696parcourir

1. Téléchargez le dernier package openssh


2. Avant de mettre à niveau openssh, vous devez d'abord ouvrir le serveur telnet et vous connecter au serveur via telnet, car le processus de mise à niveau entraînera l'indisponibilité temporaire de ssh.

Ouvrez le service Telnet Linux :

Vérifiez si Telnet a été installé :

rpm -qa|grep telnet

telnet-0.17-48 .el6.x86_64

telnet-server-0.17-48.el6.x86_64

S'il n'est pas installé, installez-le via yum

[root@ leotest ~]# miam install telnet

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

Démarrez le service telnet :

Modifiez le telnet et remplacez la désactivation par no

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

# par défaut : on

# description : Le serveur telnet dessert les sessions telnet ; il utilise

# paires nom d'utilisateur/mot de passe non chiffrés pour l'authentification.

service telnet

{

flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

                                                                                                                                      🎜>non

}

Redémarrez le service xinetd :

service xinetd restart

ou :

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

Connectez-vous au serveur via telnet :

[c:~]$ telnet 192.168.5.5

Connexion à 192.168.5.5:23...

Connexion établie.

Pour accéder au shell local, appuyez sur « Ctrl+Alt+] ».

Red Hat Enterprise Linux Server version 6.8 (Santiago)

Kernel 2.6.32-642.el6.x86_64 sur un x86_64

login : test

Mot de passe :

[test@leotest ~]$

par défauttelnet ne peut se connecter qu'aux utilisateurs ordinaires, vous devez donc vous connecter en tant qu'utilisateur ordinaire et accéder à root utilisateur

3. Sauvegardez les fichiers liés à openssh d'origine :

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

cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak

cp / etc/ssh/sshd_config /etc/ssh/sshd_config.bak

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

Remarque : Supprimez les trois fichiers suivants, sinon une erreur sera signalée lors de l'installation :

/etc/ssh/ssh_config existe déjà, l'installation ne sera pas écrasée

/etc/ssh/sshd_config existe déjà, l'installation n'écrasera pas

/etc/ssh/moduli existe déjà, l'installation n'écrasera pas

rm /etc/ssh/ssh_config -fr

rm /etc/ssh/sshd_config -fr

rm /etc/ssh/moduli -fr

yum install pam-devel

miam installez zlib-devel

yum install openssl-devel

4. Décompressez et installez 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 : erreur : *** zlib.h manquant – veuillez d'abord l'installer ou vérifier config.log

#yum install zlib-devel

###configure : erreur : *** Impossible de trouver la libcrypto OpenSSL récente (voir config.log pour plus de détails) ***

#yum install openssl openssl-devel

Recompiler :

Nettoyer avant de recompiler Informations de compilation :

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 a été configuré avec les options suivantes :

                     Binaires utilisateur : /usr/bin

                  Binaires système : /usr/sbin

               Fichiers de configuration : /etc/ssh

                   Programme Askpass : /usr/libexec/ ssh-askpass

                      Pages de manuel : /usr/share/man/manX

                         Fichier PID : /var/run

  Chemin chroot de séparation de privilèges : /var/empty

            Chemin utilisateur par défaut sshd : /usr/bin:/bin:/usr/sbin:/sbin

                     Format de la page de manuel : doc

                        Prise en charge PAM : non

Prise en charge OSF SIA : non

                 Prise en charge KerberosV : non

                  Prise en charge SELinux : non

                 Prise en charge des cartes à puce :

                     Prise en charge S/KEY : non

              Prise en charge du mot de passe MD5 : non

                   Prise en charge de Libedit : non

  Prise en charge du contrat de processus Solaris : non

            Prise en charge du projet Solaris : non

         Prise en charge des privilèges Solaris : non

       Adresse IP dans $DISPLAY hack : non

            Traduire la v4 en v6 hack : oui

                  Prise en charge de l'authentification BSD : non

              Source de nombres aléatoires : SL interne UNIQUEMENT

             Style sandbox Privsep : rlimit

 

              Hôte : x86_64-pc-linux-gnu

          Compilateur : gcc

    Compilateur indicateurs : -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

Drapeaux du préprocesseur :

      Drapeaux de l'éditeur de liens :  -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-all - pie

         Bibliothèques : -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 : écraser `/usr/sbin/sshd' ? y

cp : impossible de créer un fichier normal `/usr/sbin/sshd' : Fichier texte occupé

文件正在被使用

[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

Arrêt de sshd :                                         [  OK  ]

ssh-keygen : option illégale -- A

utilisation : ssh-keygen [ options]

Options :

 

cat /etc/init.d/sshd

start()

{

# Créer des clés si nécessaire

/usr/bin/ssh-keygen -A

if [ -x /sbin/restorecon ]; puis

/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 $"Démarrage de $prog :"

$SSHD $OPTIONS && succès || échec

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

Arrêter sshd :                                            [  OK  ]

Démarrage de sshd :                                             [  OK  ]

Démarrage de sshd:/etc/ssh/sshd_config ligne 81 : option non prise en charge GSSAPIAuthentication

/etc/ssh/sshd_config ligne 83 : option non prise en charge GSSAPICleanupCredentials

 

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

 

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

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

PermitRootLogin oui

 

##注释掉下面三个参数

#GSSAPIAuthentication oui

#GSSAPICleanupCredentials oui

#UsePAM oui

 

 

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

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

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

MAC 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连接服务器

redémarrage du service sshd

[c:~]$ ssh 192.168.5.5

Connexion au 192.168.5.5:22...

Connexion établie.

Pour accéder au shell local, appuyez sur « Ctrl+Alt+] ».

 

Dernière connexion : mardi 27 décembre 00:22:10 2016 à partir de 192.168.5.2

[root@leotest ~]# ssh -V

OpenSSH_7.4p1, OpenSSL 1.0.1e-fips 11 février 2013

 

 

7.禁用telnet

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

 

# par défaut : activé

# description : Le serveur telnet dessert les sessions telnet ; il utilise

#       des paires nom d'utilisateur/mot de passe non cryptées pour l'authentification.

service telnet

{

flags = REUSE

socket_type = stream

wait = no

user = root

                                                                                                                                                                                      serveur                                                                             🎜>

log_on_failure += USERID

désactiver = oui

}

Arrêterxinetd Service :

[root@leotest ~]# service xinetd stop

Arrêt de xinetd :                                                                                                                                

Arrêter le démarrage automatique à boot :

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

xinetd                                                                                                                                                       n'a pas démarré automatiquement :off

3:on 4:on 5:on6: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

Le problème a été résolu après la mise à niveau :

Une erreur a été signalée lors de la connexion à Linux via winscp. La solution est la suivante :

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

# remplacer la valeur par défaut d'aucun sous-système

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

Subsystem sftp internal-sftp

Commentez l'original et remplacez-le par le sftp interne suivant

Redémarrez le service sshd :

redémarrage du service sshd

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn