>운영 및 유지보수 >리눅스 운영 및 유지 관리 >openssh 업그레이드의 자세한 예

openssh 업그레이드의 자세한 예

零下一度
零下一度원래의
2017-06-27 10:09:038816검색

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 시작:                                         [  확인  ]

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 CommunitRootLogin yes

 

##注释掉하면삼个参数

#GSSAPIAuthentication yes#GSSAPICleanupCredentials yes

#UsePAM yes

  

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

导致此问题的原因是 ㅋㅋㅋ 2-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

Kex알고리즘 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 

192.168.5.5:22에 연결 중...

연결이 완료되었습니다.

탈출하려면 로컬 쉘, 'Ctrl+Alt+]'를 누르세요.

 

마지막 로그인: Tue Dec 27 00:22:10 2016 from 192.168.5.2

[root@leotest ~]# ssh -V

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 ]

다음에서 자동 시작 중지 boot : [root@leotest ~]# chkconfig -list xinetd

xinetd;

업그레이드 후 해결된 문제:

통과된 Winscp가 Linux에 로그인하고 오류를 보고합니다. 해결 방법은 다음과 같습니다.

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

# 재정의 하위 시스템 없음의 기본값#Subsystem sftp /usr/libexec/openssh/sftp-server

Subsystem sftp Internal-sftp

원본을 주석 처리하고 다음 Internal-sftp로 변경합니다

sshd 서비스를 다시 시작합니다. 서비스 sshd 재시작

위 내용은 openssh 업그레이드의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.