
내 연결이 한동안 유휴 상태이면 원격 호스트가 연결을 닫습니다. 새 명령을 입력하려고 하면 중단된 다음 연결이 닫힙니다. SSH 연결을 더 오래 활성 상태로 유지하려면 어떻게 해야 합니까?
$ ssh [email protected]
Last login: Tue Jan 3 03:09:39 2017 from c-99-99-99-99.hsd1.xx.comcast.net
[root@ip-172-99-99-99 ~]# groups
root bin daemon sys adm disk wheel
[root@ip-172-99-99-99 ~]# users
root root
[root@ip-172-99-99-99 ~]# less /etc/passwd
[root@ip-172-99-99-99 ~]# Connection reset by 52.99.99.99 port 22
원격은 Amazon(AWS)의 CentOS이고 로컬은 Cygwin입니다.
답변1
home
마지막 로그인은 comcast.net에서 이루어졌으므로 NAT를 수행하는 라우터 뒤에 있는 시스템에서 연결하고 있는 것 같습니다 . NAT를 수행하는 시스템의 한 가지 문제는 연결이 더 이상 필요하지 않은 시기를 아는 것입니다. 연결이 완전히 끊어지면 문제가 없지만 두 컴퓨터가 모두 재부팅된 경우에는 NAT 상자가 이러한 일이 발생했다는 신호를 받지 못합니다. 따라서 일반적인 NAT 상자에는 "한 시간 동안 트래픽이 없으면 분명히 두 끝점 모두 더 이상 아무 것도 보내지 않을 것입니다"라는 타이머가 있으므로 NAT가 차지하는 리소스가 회수됩니다.
따라서 당신이 원하는 것은 가끔씩 트래픽을 보내는 것입니다. openssh
Cygwin 시스템에서 이 구현을 사용한다고 가정하면 가장 쉬운 방법은 TCPKeepAlive를 활성화하는 것입니다. 바꾸다
ssh [email protected]
그리고
ssh -o TCPKeepAlive=true [email protected]
장기간 사용하려면 ~/.ssh/config
파일을 만들어 두는 것이 좋습니다.
host fred
hostname host.com
user root
TCPKeepAlive=true
ssh fred
그런 다음 원하는 옵션을 사용하여 머신에 연결하기 만 하면 됩니다 .
답변2
마지막으로 저장된 세션 SSH 키를 사용하고 있습니다.
이를 삭제하고 ssh
액세스하려는 IP 주소에 대한 새 키를 추가해야 합니다.
ssh-keygen -f "/home/asagarwal-dev/.ssh/known_hosts" -R 10.0.0.6
위의 명령은 내 문제를 해결했습니다( 호스트에서 얻으 10.0.0.6
려는 IP 주소는 어디에 있습니까?).ssh
답변3
SSH 클라이언트로서 다음을 구성합니다.
Host *
ServerAliveInterval 60
sudo source ~/.ssh/config
모든 원격 호스트는 여기에서 구성됩니다.
/etc/ssh/ssh_config
ServerAliveInterval 60