Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Detailliertes Beispiel für das Upgrade von OpenSh
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 restartVerbinden 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_64Login: testPasswort:[test@leotest ~]$ standardmäßigTelnet kann nur eine Verbindung zu normalen Benutzern herstellen, daher müssen Sie sich als normaler Benutzer anmelden und zum Root
wechseln
Benutzer3. 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 -frrm /etc/ssh/sshd_config -frrm /etc/ssh/moduli -fr
yum install pam-devel
yum install zlib-develyum install openssl-devel
4. Entpacken und installieren Sie openssh
[root@leotest softs ]# tar -zxvf openssh-7.4p1.tar.gz[root@leotest softs]# lsopenssh-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 machenldconfig[root@leotest openssh-7.4p1]#
./configure --prefix=/usr /local/openssh --sysconfdir=/etc/ssh --with-pam --with-md5-passwords --mandir=/usr/share/manOpenSSH 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 -fPIEPrä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/sshdchmod u+x /etc/init.d/sshdchkconfig --add sshdcp /usr/local/openssh/sbin/sshd /usr/sbin/sshd[root@pttlstydb openssh-7.4p1]# cp /usr/local/openssh/sbin/sshd /usr/sbin/ sshdcp: „/usr/sbin/sshd“ überschreiben? ycp: reguläre Datei „/usr/sbin/sshd“ kann nicht erstellt werden:Textdatei ausgelastet
文件正在被使用
[root@pttlstydb openssh-7.4p1]# ps -ef|grep sshdroot 14111 1 0 10:05 ? 00:00:00 sshd: root@pts/0root 14865 1 0 10:22 ? 00:00:00 sshd: root@nottyroot 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
xinetdDienst:[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!