부팅시 자동으로 SSH 시작


15

Linux 및 Ubnuntu에 완전히 새로운 브랜드입니다. 딥 러닝 / 신경 네트워크를 수행하기위한 머신 설정 지금까지는 잘 진행되고 있습니다. 모든 것이 설치되어 실행 중입니다. 시스템을 사용하기 위해 Mac 랩톱에서 ssh 할 수 있기를 원합니다. openssh를 설치 하고 작동했습니다.

그러나 컴퓨터를 다시 시작하면 ssh 서버가 다시 시작되지 않습니다. 확인 sudo service ssh status하고보고하고 오류가 있습니다. 그런 다음 시작할 수 있으며 모든 것이 잘 작동합니다.

내 생각은 재부팅 할 때 시작해야한다는 것입니다. 이 스레드 는 기본적으로 시작해야하며 chrontab 또는 이와 유사한 것을 추가 할 필요가 없다는 스레드 를 발견 했습니다. 그래서 나는 그렇게 생각하지 않습니다.

그런 다음 명령을 사용하여 제안하는 이 스레드 를 찾았 sudo update-rc.d ssh defaults지만 해당 스레드는 꽤 오래되어 그 당시에는 대답이 옳지 않은 것 같습니다.

그럼 내가 발견 이 스레드 아웃 주석 제안 ListenAddress라인 하여 sshd_config 파일을. 기본적으로 ListenAddress를 사용하면 DCHP에서 할당하기 전에 IP를 가져 오려고 시도 할 수 있으므로 시작이 실패합니다. 말이됩니다. 그러나 포트 전달이 홈 네트워크를 통해 작동하게하려면 해당 매개 변수가 필요합니다.

이 문서 에 대한 항목 아래 대하여 ListenAddress는 말한다

The default is to listen on all local addresses.

포트 포워딩이 작동하는데 필요하지 않습니까?

나는 이 버그 보고서에 대해 이전 스레드를 따랐 지만 꽤 오래되었지만 netmanager가 새로운 IP를 얻을 때마다 네트워크 관리자를 사용하여 ssh를 다시 시작하는 것이 좋습니다.

echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh

그것은이 시점에서이 noobie가 평가할 수있는 것보다 훨씬 더 많은 것입니다. 안전한가요? 그렇게하는 방법입니까? 지난 7 년 동안 다른 일이 있었습니까?

어떤 조언도 좋을 것입니다. 감사.


Gee, 단순히 openssh-server 패키지를 설치하고 올바르게 구성했습니다. 이후 ssh 서버가 자동으로 올바르게 시작되었습니다. 추가적인 여유가 필요 없습니다.
user535733

1
포트 포워딩을 사용하고 있고 ListenAddress 매개 변수를 사용할 필요가 없습니까? 그렇다면 "적절하게 구성된"내용을 공유 할 수 있습니까?
Rothrock

이 모든 경우에 처음 부팅 할 때 SSH 상태에 대한 정보를 제공하지 않았습니다. systemctl status ssh출력 은 무엇입니까 ?
muru

문제가 다음과 비슷하게 들립니다 ( systemctl status NetworkManager-wait-online.service
명확히

1
포트 포워딩 설정은 어떻게합니까? ListenAddress를 전혀 사용하지 않으며 홈 서버에서 정상적으로 작동합니다. 내 라우터는 내가 지정한 포트 (22 표준 포트를 원한다면 국제 네트워크의 다른 서비스와 충돌하지 않는 한 아무 것도 사용할 수 있음)에 들어있는 모든 것을 원하는 컴퓨터로 전달합니다. 예를 들어 포트 12345에 들어온 것은 CentOS 서버의 포트 22로 전달됩니다. 12346에 나오는 것은 헤드리스 RasPi의 포트 22로 전달됩니다. 12347에 나오는 모든 것은 내 RasPi의 IRC 경비원을 위해 포트 6697로갑니다.
RobertRSeattle

답변:


43

당신은 단순히 설정을 시도 했습니까

sudo systemctl enable ssh

?

이것이 시작시 ssh가 실행되도록 설정 한 방법입니다.

****이 게시물을 발견 한 다른 사람들에게 도움이되는 경우를 대비하여 위의 답변에서 떠납니다. ****

위에서 내 의견을 인용 :

포트 포워딩 설정은 어떻게합니까? ListenAddress를 전혀 사용하지 않으며 홈 서버에서 정상적으로 작동합니다. 내 라우터는 내가 지정한 포트 (22 표준 포트를 원한다면 국제 네트워크의 다른 서비스와 충돌하지 않는 한 아무 것도 사용할 수 있음)에 들어있는 모든 것을 원하는 컴퓨터로 전달합니다. 예를 들어 포트 12345에 들어오는 모든 것은 CentOS 서버의 포트 22로 전달됩니다. 12346에 나오는 것은 헤드리스 RasPi의 포트 22로 전달됩니다. 12347에 나오는 것은 RasPi의 IRC 경비원을 위해 포트 6697로갑니다.

ListenAddress는 포트 넘침과 관련이 없으며, ListenAdress는 하나 이상의 NIC를 통해 여러 IP 주소로 구성된 서버에 사용할 수 있습니다. 여기에서 인용 (전체 페이지는 좋은 설명입니다) : https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

총 8 개의 퍼블릭 IP 주소와 1 개의 프라이빗 IP 주소가 있다고 가정하겠습니다. sshd를 하나의 선택된 공개 IP (예 : 70.5.xx.xx) 및 비공개> IP (10.1.5.1)에만 바인딩하려고합니다.

다행히도 ListenAddress 옵션을 사용하여이를 달성하는 쉬운 방법이 있습니다. sshd가 수신해야하는 로컬 주소를 지정합니다. 이 지시어가 구성 파일에서> skipped되면 sshd는 사용 가능한 모든 IP 주소를 바인딩하거나 나열합니다.

여러 IP 중 일부가 ssh 연결을 허용하도록 허용합니다. ListenAddress를 퍼블릭 IP 또는 라우터의 내부 IP로 설정 한 것 같습니다. 서버의 로컬 IP로 설정하면 제대로 작동했을 것입니다. 어쨌든 이제 ListenAddress의 작동 방식을 알았으며보다 복잡한 서버를 구성해야 할 경우 준비가되었습니다. 일이 잘되어서 다행입니다.


2
+1 정답입니다. 우분투 16.04는 systemd를 사용하기 시작했습니다. 이 답변의 명령은 systemd를 사용하여 재부팅시 SSH를 시작합니다. OP가 링크 한 다른 스레드는 시작에만 적용되고 시스템화되지 않았거나 문제에 전혀 적용되지 않았습니다.
Sam Gleske

1
systemctl list-unit-files –type = service를 수행했으며 ssh.service가 활성화되어 있음을 확인했습니다. 그래서 나는 그것이 문제라고 생각하지 않습니다. 그러나 systemctl / systemd에 대한 팁에 감사드립니다. 그것은 나에게 더 많은 장소를 제공한다. DCHP가 IP 주소를 반환 할 때까지 systemd / systemctl에게 대기하도록 지시하는 방법이 있습니까?
Rothrock

활성화 한 후 새 파일을 작성해야합니다.ls -l /etc/systemd/system/sshd.service
Timo

2

제안 된 솔루션이 저에게 효과가 없으므로 결국 부팅시 SSH를 시작하는 데 추가 명령이 필요하다는 것을 알았습니다.

sudo update-rc.d ssh defaults
sudo systemctl enable ssh.socket

일부는이 명령에 대해 언급했습니다.

sudo systemctl enable ssh.service

이 명령 대신 실행해야합니다.

sudo systemctl enable ssh

우분투 18, 아무도 효과가 없었습니다. 다른 컴퓨터에서 ssh 할 수 있으려면 GUI에서 로그인해야합니다.
심층 토론
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.