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 창, 자동 로그 인 등 문제 해결)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MVC의 심연를 보면 Trygve Reenskaug씨가 고안했다고 쓰여 있다. 뷰에 조작 오브젝트가 있는 경우와, 단순히 키보드나 마우스의 상태를 픽업하는 것을 고려하는 예이다. 그러나 잘 생각하면 이상하다. 예를 들어 키보드에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.