강아지 리눅스에 sshd를 설치했습니다. 누군가 sshd를 시작하는 방법을 말해 줄 수 있나요?
답변1
Bionic Puppy Linux에서 sshd(ssh 서버)를 설정하는 데 유용한 지침을 여기에서 찾았습니다.PuppyLinux 뉴스레터 - 2018년 12월
모든 강아지에는 기본적으로 SSH가 설치되어 있어야 합니다. 이름에도 불구하고 이는 사용자가 다른 운영 체제(예: Raspberry Pi, Ubuntu, Antix 등)를 실행하는 호스트에 로그인할 수 있도록 하는 SSH의 클라이언트 부분일 뿐입니다. /etc/에서 ssh_config 파일을 찾아 설치를 확인하세요. SSH. 이 파일을 편집할 필요는 없지만 경우에 따라 서버로 실행하려면 이 파일에 대한 권한을 변경해야 할 수도 있습니다.
다른 Linux 배포판(예: Ubuntu)이 동일한 LAN에서 SSH 서버를 실행하는 경우 10단계에 따라 Puppy가 클라이언트로 작동하는지 테스트할 수 있습니다. 설정의 일부로 로컬 또는 호스트 장치에서 8단계를 수행할 수 있으므로 이는 필요하지 않습니다.
SSH를 서버로 실행하려면 호스트 보안 셸에 대한 액세스를 요청하는 클라이언트를 포트 22(또는 다르게 구성)에서 수신 대기하는 SSH 데몬 서버인 SSHD를 설치해야 합니다. 호스트 소프트웨어 Openssh-server는 PPM에서 설치할 수 있습니다. LX Bionic 강아지 버전 7.6p1 및 이전 Tahrpuppies 버전 6.6.1p1부터 시작합니다.
PPM에서 Openssh-server를 설치한 후
/etc/ssh
. 이 폴더에는 두 개의 구성 파일,ssh_config
및sshd_config
moduli.conf라는 파일이 있어야 합니다 .기본
sshd_config
파일이 다음과 같을 가능성이 있는 경우아니요존재하는 경우 다음에서 스크립트를 다운로드하십시오. https://github.com/openssh/openssh-portable/blob/master/sshd_config스크립트를 새로 생성된 텍스트 파일이나 삭제된 기존 셸 스크립트에 붙여넣고 sshd 스크립트로 채운 다음 이름을 바꿔야 합니다. 파일을 편집하거나 액세스할 수 있도록 하려면 권한을 변경해야 할 수도 있습니다.
실패하면 SSHD가 설치된 다른 운영 체제 Linux 배포판에서 파일을 복사하세요. 그러나 기본 스크립트로 시작하는 것이 가장 좋습니다.
sshd_config
이제 이 파일을 편집하여 Puppy Linux에서 실행해야 합니다.경험상 스크립트의 다음 행 중 일부는 RHS(#) 주석에 표시된 것처럼 다른 행보다 더 중요해 보입니다. 아래 나열된 줄 왼쪽에 있는 "#" 주석 태그를 모두 제거하고 아래와 같이 편집합니다. 선택적 줄은 기본 구성이므로 주석으로 남을 수 있어야 합니다.
Port 22 # Optional, as this is the default AddressFamily any # Optional ? LoginGraceTime 2m # Optional PermitRootLogin yes # Critical for puppy linux PubkeyAuthentication no # Critical for initial use PasswordAuthentication yes # Critical for initial use PermitEmptyPasswords yes # Optional, otherwise use no ChallengeResponseAuthentication yes # Critical for initial use UsePAM no # Critical AllowTcpForwarding yes # Optional ? X11Forwarding yes # If one wishes to run GUI applications in the host computer X11DisplayOffset 10 # Recommended X11UseLocalhost yes # Optional ? PrintMotd no # Optional ? TCPKeepAlive yes # Optional ? Subsystem sftp /usr/lib/openssh/sftp-server # Optional ?
이제 터미널에서 SSHD 서버를 시작할 준비가 되었습니다
/etc/init.d/ssh start
. 아직 모든 기능이 설정되지 않았기 때문에 오류 메시지가 나타납니다. 지금은 이러한 항목을 무시하세요.어쨌든 이제 SSH가 실행 중인지 확인할 수 있습니다. 터미널에서 실행하면
netstat -tupan
호스트 장치가 수신 대기 중인 모든 포트 목록이 표시됩니다. 우리가 찾고 있는 라인은 포트 22를 참조하며 다음과 같습니다:Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd
포트 22만 나열하는 더 짧은 출력의 경우 다음을 사용합니다(
netstat -anplt | grep :22
공백 참고). SSHD가 실행 중인 경우 다음이 제공됩니다.tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd
포트 22가 나열되지 않으면 SSH가 실행되고 있지 않으며 설정을 확인해야 함을 의미합니다.
다음 단계는 파일
/etc/hosts.allow
과/etc/hosts.deny
설정이 올바른지 확인하는 것입니다. 분명히 Puppy Linux는 "루트" 사용자로 실행되기 때문에 운영 체제는 보안 조치로 대부분의 포트에 대한 액세스를 자동으로 차단하도록 설정되어 있습니다.# ALL: ALL
in을 사용하여 제거하거나 주석을 달고hosts.deny
데이터를hosts.allow
다음으로 변경합니다.ALL: LOCAL SSH: ALL
이 조정은 MPD를 사용한 음악 스트리밍과 같이 원격 액세스가 필요한 다른 애플리케이션에도 중요합니다.
로컬 SSH를 테스트하려면 방화벽을 꺼야 합니다. SSHD는 별도의 클라이언트 장치를 사용하기 전에 localhost에 연결할 수 있어야 합니다.
다음 명령을 사용하여 터미널에서 설정을 테스트합니다.
ssh -vvv root@localhost
또는ssh -vvv [email protected]
(여기서는127.0.0.1
로컬 호스트의 IP 주소를 사용하여 결정됩니다ifconfig
).스위치를 로 설정하면
-vvv
확장된 자세한 출력이 제공되므로 작업이 중지된 위치를 확인할 수 있습니다. 정보가 적으면 대신 사용하세요-v
.다음 오류가 보고될 때까지 SSHD가 계속 실행될 가능성이 높습니다.
debug1: SSH2_MSG_KEXINIT sent Read from socket failed: Connection reset by peer OR ssh_exchange_identification: read: Connection reset by peer OR ssh_exchange_identification: read: Closed by unknown
답변2
일반적으로 스크립트를 사용하여 Puppy에서 서비스를 시작할 수 있습니다 /etc/init.d
.
$ sudo /etc/init.d/sshd start
이미 다음과 같이 실행되고 있는 경우:
$ netstat -anplt | grep :22
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
그러면 데몬이 포트 22에서 실행 중이고 수신 대기 중임을 알 수 있습니다. 이 경우 귀하의 질문은 이 스레드에서 논의된 다음 제목의 질문과 관련될 수 있습니다.강아지 컴퓨터에 SSH를 통해 연결할 수 없습니다. 연결이 거부되었습니다. .
Puppy를 사용하여 방화벽이 활성화되어 있으며 SSH 액세스를 허용하려면 규칙을 추가하거나 비활성화해야 합니다. 이렇게 하려면 를 iptables
사용하여 방화벽을 조작해야 합니다. 예를 들어:
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT