집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >openssh 업그레이드의 자세한 예
1. 최신 openssh 패키지를 다운로드하세요.
2. 업그레이드 프로세스로 인해 SSH를 일시적으로 사용할 수 없습니다
Linux 텔넷 서비스 열기:
텔넷이 설치되었는지 확인:
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
을 통해 설치하세요. 텔넷 서비스 시작:
텔넷 파일 편집, 비활성화를 no
[root@leotest xinetd.d]# vi /etc/xinetd.d/telnet
# 기본값: on
# 설명: 텔넷 서버는 텔넷 세션; 인증을 위해
# UNENCRYPTED 사용자 이름/비밀번호 쌍을 사용합니다.
Service Telnet
{
Flags = Reuse
Socket_type = STREAM
WAIT = No
User = /US r/sbin/in. telnetd
log_on_failure + = USERID etc/rc.d/init.d/xinetd restart
텔넷을 통해 서버에 연결: [c:~]$ telnet 192.168.5.5
연결 중 192.168.5.5:23...
연결이 설정되었습니다.
로컬 셸로 빠져나가려면 'Ctrl+Alt+]'를 누르세요.
Red Hat Enterprise Linux Server 릴리스 6.8(Santiago)
Kernel 2.6.32-642. el6.x86_64 on an x86_64
login: test
Password:
[test@leotest ~ ]$
기본값
telnet
은 일반 사용자에게만 연결할 수 있으므로 일반 사용자로 로그인해야 합니다. users 하고
root
user
로 이동합니다. 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.bakcp /etc/ssh/moduli /etc/ssh/moduli.bak
참고: 다음 세 파일을 삭제하세요. 그렇지 않으면 설치 중에 오류가 보고됩니다./etc/ssh /ssh_config가 이미 존재합니다. 설치하면 덮어쓰지 않습니다./etc/ssh/sshd_config가 이미 존재합니다. 설치합니다. 덮어쓰지 않습니다/etc/ssh/moduli가 이미 존재하므로 설치하면 덮어쓰지 않습니다
rm /etc/ssh/ssh_config -fr
rm /etc/ssh/sshd_config -fr
rm /etc/ssh/ moduli -fr
yum install pam-devel
yum install zlib-develyum install openssl-devel
4 압축을 풀고 openssh 을 설치하세요.[root@leotest 소프트]# tar -zxvf openssh-7.4p1.tar.gz
[root@leotest 소프트]# ls
openssh-7.4 p1 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
### 구성: 오류: * ** zlib.h 누락 – 먼저 설치하거나 config.log
#yum install zlib를 확인하세요 -devel
###configure: 오류: *** 최근 OpenSSL libcrypto를 찾을 수 없습니다(자세한 내용은 config.log 참조) ***#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는 다음 옵션으로 구성되었습니다.
ㅋㅋㅋ Askpass 프로그램: /usr/libexec/ssh-askpass 매뉴얼 페이지: /usr/share/man /manX PID 파일: /var/run 권한 분리 chroot 경로: /var/empty sshd 기본 사용자 경로: /usr/bin:/bin:/usr/sbin:/sbin 맨페이지 형식: doc PAM 지원: 아니요 OSF SIA 지원: 아니요 KerberosV 지원: 아니요 SELinux 지원: 아니요 스마트 카드 지원: S/KEY 지원: 아니요 MD5 비밀번호 지원: 아니요 libedit 지원: no Solaris 프로세스 계약 지원: no Solaris 프로젝트 지원: no Solaris 권한 지원: no $DISPLAY 해킹의 IP 주소: no v6 해킹에서 v4 번역: yes BSD 인증 지원: 아니요ㅋㅋㅋ 컴파일러: 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
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'를 덮어쓰시겠습니까? ycp: `/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@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 중지: ] ssh-keygen: 잘못된 옵션 -- A 사용법: ssh-keygen [옵션] 옵션: cat /etc/init.d/sshd start() { # 필요한 경우 키 생성 /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 $"$prog 시작:" $SSHD $OPTIONS && 성공 || failure RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd echo } 因为默认低版本的 ssh ㅋㅋㅋ ㅋㅋㅋ [ 확인 ]sshd 시작: [ 확인 ]
/etc/ssh/sshd_config 줄 83: 지원되지 않는 옵션 GSSAPICleanupCredentials
原因: 새로운 불본적 openssh支持以上参数,需要修改sshd의 配置文件 #GSSAPIAuthentication yes#GSSAPICleanupCredentials yes 导致此问题的原因是 ㅋㅋㅋ 2-cbc,aes256-cbc,aes128-ctr,aes192-ctr, aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc service sshd restart[c:~]$ ssh 192.168.5.5 OpenSSH_7.4p1, OpenSSL 1.0.1e-fips 2013년 2월 11일 7.禁用telnet [root@leotest ~]# vi /etc/xinetd.d/telnet # 기본값: on # 설명: 텔넷 서버는 텔넷 세션을 제공합니다. 인증을 위해 # 암호화되지 않은 사용자 이름/비밀번호 쌍을 사용합니다. service telnet { Stop xinetd [ OK ] 업그레이드 후 해결된 문제: 통과된 Winscp가 Linux에 로그인하고 오류를 보고합니다. 해결 방법은 다음과 같습니다. [root@leotest ~]# vi /etc/ssh/sshd_config # 재정의 하위 시스템 없음의 기본값#Subsystem sftp /usr/libexec/openssh/sftp-server 원본을 주석 처리하고 다음 Internal-sftp로 변경합니다 sshd 서비스를 다시 시작합니다. 서비스 sshd 재시작
위 내용은 openssh 업그레이드의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!