ssh 로그 인 후 방치 시간 이 너무 길 어 연결 이 끊 어 지 는 것 을 방지 합 니 다.

zz ssh 로그 인 후 방치 시간 이 너무 길 어 연결 이 끊 어 지 는 것 을 방지 합 니 다.
작업 환경 은 Liux 에서 서버 에 로그 인해 야 하기 때문에 키보드, 마우스 가 너무 오래 방치 되 었 을 때 서버 에 의 해 자동 으로 끊 기 고 앞에서 하 는 일 들 이 중단 되 기 때문에 귀 찮 기 때문에 서비스 기 에 의 해 차 이지 않도록 방법 을 강구 해 야 합 니 다.
한 가지 방법 은 서버 세그먼트 를 수정 하 는 것 입 니 다. / etc / ssh / sshdconfig 에 Client AliveCountmax 를 설정 합 니 다. 단위 로 나 누 면 기본 값 은 3 분 입 니 다. 즉, 3 분 동안 방치 하면 자동 으로 끊 깁 니 다. 예 를 들 어 30 분 동안 수정 할 수 있 습 니 다. 예 를 들 어 Client AliveCountmax = 30
다른 방법 은 비교적 통용 되 는데 원 리 는 바로 키보드 동작 을 모 의 하 는 것 이다. 유 휴 시간 안에 키보드 에 모 의 응답 을 하 는 것 이다. 다음 과 같다. 도구: expect 코드 는 다음 과 같다.
#!/usr/bin/expect








set

timeout 60




spawn ssh

user@

host   interact {




timeout 300

{

send "x20"

}







}


텍스트 파일 xxx 로 저장 하고 expect 로 실행 합 니 다. expect xxx 는 알림 에 따라 비밀 번 호 를 입력 하면 됩 니 다. 그러면 300 초 마다 자동 으로 빈 칸 (x20) 을 치고 구체 적 인 시간 간격 은 구체 적 인 상황 에 따라 설정 할 수 있 습 니 다.이 걸 로 난 코드 문 제 를 해결 할 수 있 습 니 다. 예 를 들 어 서버 가 GB 18030 으로 인 코딩 된 경우 spawn ssh 만user@hostspawn luit - encoding GB 18030 ssh 로 바 꿔 주세요.user@host다른 것 은 자동 로그 인 같은 것 도 있 으 니 관심 있 는 것 은 스스로 연구 해 보 세 요.
또한, windows 아래 에 있 으 면 secureCRT 는 남 은 기능 을 가지 고 옵션 - > 세 션 옵션 - > 터미널 을 엽 니 다. 그림: 문자열 을 보 내 는 곳 에 빈 칸 을 두 면 됩 니 다.
 
 
=========
zz  ssh 자동 차단 해결 방법
 
putty / secureCRT 로 3 분 동안 입력 하지 않 으 면 자동 으로 끊 기 고 다시 로그 인해 야 합 니 다. 귀 찮 습 니 다. 인터넷 에서 많은 자 료 를 찾 아 보 니 환경 변수 TMUT 로 인 한 클 라 이언 트 Alive Countmax 와 클 라 이언 트 Alive Interval 설정 문제 나 심지어 방화벽 설정 문제 가 있 습 니 다. 그래서 이렇게 시도 할 수 있 습 니 다. 1. echo $TMUT 에 공백 이 표시 되면..설정 이 없 음 을 나타 내 는 것 은 기본 값 0 을 사용 하 는 것 과 같 습 니 다. 일반적인 경우 시간 을 초과 하지 않 을 것 입 니 다. 0 이상 이면 / etc / profile 과 같은 파일 에서 0 으로 설정 할 수 있 습 니 다. Definition: TMUT: If set to a value greater than zero,value is interpreted as the number of seconds to wait for input after issuing the primary prompt. bash terminates after waiting for that number of seconds if input does not arrive. 2. Client AliveInterval 60 재 / etc / ssh / sshdconfig 에 Client AliveInterval 60 을 추가 합 니 다. Client AliveInterval 은 서버 측 이 클 라 이언 트 에 게 메 시 지 를 요청 하 는 시간 간격 을 지정 합 니 다. 기본 값 은 0 이 고 보 내지 않 습 니 다. Client AliveInterval 60 은 분당 한 번 보 내 고 클 라 이언 트 가 응답 하면 긴 연결 을 유지 합 니 다. 여기 서 이상 한 점 은 클 라 이언 트 가 자발적으로 연결 을 유지 하 라 는 요청 (예 를 들 어 FTerm, CTerm 등) 이 아 닙 니 다.서버 가 먼저 움 직 여야 합 니 다. 또한, Client AliveCountmax 에 대해 서 는 기본 값 3 을 사용 하면 됩 니 다. lientAliveCountmax 는 서버 가 요청 한 후 클 라 이언 트 가 일정 치 에 응답 하지 않 으 면 자동 으로 끊 깁 니 다. 정상 적 인 상황 에서 클 라 이언 트 가 응답 하지 않 습 니 다. Client AliveCountmax Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the ses- sion. It is important to note that the use of client alive mes- sages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and there- fore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valu- able when the client or server depend on knowing when a connec- tion has become inactive. The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unre- sponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only. ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8)will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol ver - sion 2 only.  4. SecureCRT 설정 반 남 은 option - > session option - > Terminal - > Anti - idle - > Send protocol NO - OP every seconds 몇 초 간격 으로 빈 문자열 을 보 내 링크 를 계속 엽 니 다.
 
=========
 
ssh 는 안전 을 고려 하여 유 휴 후 자동 차단 기능 을 설정 하여 장시간 원 격 조작 과 ssh 를 이용 하여 qiang 을 입 은 학생 들 에 게 큰 불편 을 가 져 왔 습 니 다. 인터넷 의 N 가지 방법 을 참고 하여 다음 과 같은 \ #! / usr / bin / expect 를 실현 합 니 다.




# Auto login ssh




 


set

user "username"

;


set

passwd

"password"

;


set

host "ip"

;


set

id1 1

;


 


while

(

1

)

{




set

isconnected 0

;


spawn /

usr/

bin/

ssh

-D7070

$user

@

$host

;


set

id1 $spawn_id




match_max 100000

;


set

timeout 60

;


expect {




"password:"

{




send "$passwd

/r

"


;


expect "jailshell"

{




set

isconnected 1

;


puts "connected to $host

succeed"


;


puts $spawn_id

;


}




}




 


"closed"

{




set

isconnected 0

;


#puts "connected to $host fail"




 


}




 


}




 


if

{

$isconnected

== 0

}

{




close;


puts "SSH server connect fail,retrying..."

;


continue

;


 


}




 


while

(

1

)

{




set

isconnected 0

;


interact {




timeout 22

{




set

timeout 10

;


send "echo im active/r

"


;


expect "*im active*"

{

set

isconnected 1

}




if

{

$isconnected

== 1

}

{




puts "on line/r

"


;


continue

;


}

else

{




puts "off line/r

"





break

;


}




}




close;


puts "SSH server connect fails,retrying..."

;


}





===========







~/.ssh/config




참조:
Host *
ServerAliveInterval 60
ServerAliveCountMax 10
위의 두 숫자 는 자신의 필요 에 따라 조절 합 니 다. 첫 번 째 는 서버 에 데 이 터 를 얼마나 자주 보 내 는 지, 단 위 는 초 입 니 다. 두 번 째 는 서버 답장 을 몇 번 받 지 못 하면 링크 를 끊 는 다 는 뜻 입 니 다.
관련:
하 이 라이트 PuTTY 중국어 튜 토리 얼 (디 코딩, X 창, 자동 로그 인 등 문제 해결)

좋은 웹페이지 즐겨찾기