Beyond Linux® From Scratch (systemd Edition) - Version 12.1 | ||
---|---|---|
Chapter 5. File Systems and Disk Management | ||
이전 | 위로 / 처음으로 | 다음 |
NSS-3.98 | p11-kit-0.25.3 |
OpenSSH-9.6p1
OpenSSH 소개
OpenSSH 패키지에는 ssh 클라이언트와 sshd 데몬이 포함되어 있습니다. 이는 네트워크를 통한 인증 및 후속 트래픽을 암호화하는 데 유용합니다. ssh 및 scp 명령은 각각 텔넷과 rcp의 보안 구현입니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
패키지 정보
- 다운로드(HTTP): openssh-9.6p1.tar.gz
- 다운로드 MD5 합계: 5e90def5af3ffb27e149ca6fff12bef3
- 다운로드 크기: 1.8 MB
- 필요한 예상 디스크 공간: 45MB (테스트 22MB 추가)
- 예상 빌드 시간: 0.2 SBU (병렬 처리=4 사용, 테스트 실행에는 프로세서 속도와 관계없이 약 20분 소요)
OpenSSH 종속성
선택 사항
- GDB-14.1 테스트용
- Linux-PAM-1.6.0 Shadow-4.14.5의 PAM 구성 파일을 사용하여 openssh 구성 파일 생성
- Xorg Applications 또는 Xorg build environment 설명 참조
- Which-2.21 테스트용
선택적 런타임([[wpko>정보 엔트로피|엔트로피]] 수집에만 사용)
OpenSSH 설치
다른 컴퓨터에 연결할 때 OpenSSH는 두 개의 프로세스로 실행됩니다. 첫 번째 프로세스는 권한이 있는 프로세스이며 필요에 따라 권한 발급을 제어합니다. 두 번째 프로세스는 네트워크와 통신합니다. 적절한 환경을 설정하려면 추가 설치 단계가 필요하며, 이는 root
사용자로 다음 명령을 실행하여 수행합니다.
install -v -g sys -m700 -d /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' \
-d /var/lib/sshd \
-g sshd \
-s /bin/false \
-u 50 sshd
다음과 같이 OpenSSH를 설치합니다.
./configure --prefix=/usr \
--sysconfdir=/etc/ssh \
--with-privsep-path=/var/lib/sshd \
--with-default-path=/usr/bin \
--with-superuser-path=/usr/sbin:/usr/bin \
--with-pid-dir=/run &&
make
결과를 테스트 할려면 make -j1 tests를 실행합니다.
이제 root
사용자로
make install &&
install -v -m755 contrib/ssh-copy-id /usr/bin &&
install -v -m644 contrib/ssh-copy-id.1 \
/usr/share/man/man1 &&
install -v -m755 -d /usr/share/doc/openssh-9.6p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* \
/usr/share/doc/openssh-9.6p1
명령 설명
- –sysconfdir=/etc/ssh:
구성 파일이/usr/etc
에 설치되지 않도록 합니다. - –with-default-path=/usr/bin 및 –with-superuser-path=/usr/sbin:/usr/bin:
LFS 및 BLFS 섀도 패키지와 일치하는 경로를 설정합니다. - –with-pid-dir=/run:
OpenSSH가 더 이상 사용되지 않는/var/run
을 참조하지 못하도록 합니다. –with-pam
: Linux-PAM 지원을 활성화합니다.–with-xauth=$XORG_PREFIX/bin/xauth
: X 인증을 위한xauth
바이너리의 기본 위치를 설정합니다. 환경 변수XORG_PREFIX
는 Xorg 빌드 환경에 따라 설정해야 합니다. 이 변수는sshd_config
에서 XAuthLocation 키워드를 사용하여 제어할 수도 있습니다. Xorg가 이미 설치되어 있는 경우 이 스위치를 생략할 수 있습니다.–with-kerberos5=/usr
: Kerberos 5 지원을 포함하는 데 사용됩니다.–with-libedit
: sftp에 대한 명령줄 편집 및 기록 기능을 활성화합니다.
OpenSSH 설정하기
설정 파일
~/.ssh/*
, /etc/ssh/ssh_config
및 /etc/ssh/sshd_config
이 파일 중 어느 것도 변경할 필요가 없습니다. 그러나 /etc/ssh/
파일을 보고 시스템 보안을 위해 적절하게 변경할 수 있습니다. 권장되는 변경 사항 중 하나는 ssh를 통한 root
로그인을 비활성화하는 것입니다. root
사용자로 다음 명령을 실행하여 ssh
를 통한 루트 로그인을 비활성화합니다:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
비밀번호를 입력하지 않고 로그인하려면 먼저 ssh-keygen
을 사용하여 ~/.ssh/id_rsa 및 ~/.ssh/id_rsa.pub을 만든 다음 로그인하려는 원격 컴퓨터의 ~/.ssh/id_rsa.pub을 ~/.ssh/authorized_keys에 복사하세요. 원격 컴퓨터의 사용자 이름과 호스트 이름에 대해 REMOTE_USERNAME 및 REMOTE_HOSTNAME을 변경해야 하며, ssh-copy-id
명령이 성공하려면 비밀번호도 입력해야 합니다:
ssh-keygen &&
ssh-copy-id -i ~/.ssh/id_ed25519.pub REMOTE_USERNAME@REMOTE_HOSTNAME
비밀번호 없는 로그인이 작동하면 실제로 비밀번호로 로그인하는 것보다 더 안전합니다(대부분의 사람들이 사용하는 비밀번호보다 개인 키가 훨씬 길기 때문입니다). 이제 비밀번호 로그인을 비활성화하려면 root
사용자로 다음과 같이 입력합니다:
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config &&
echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config
Linux-PAM 지원을 추가한 후 ssh에서 이를 사용하려면 sshd에 대한 구성 파일을 추가하고 LinuxPAM 사용을 사용하도록 설정해야 합니다. ssh는 비밀번호를 확인할 때만 PAM을 사용하므로 비밀번호 로그인을 사용하지 않도록 설정한 경우에는 이러한 명령이 필요하지 않습니다. PAM을 사용하려면 root
사용자로 다음 명령을 실행하세요.
sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd &&
chmod 644 /etc/pam.d/sshd &&
echo "UsePAM yes" >> /etc/ssh/sshd_config
추가 구성 정보는 sshd
, ssh
및 ssh-agent
의 매뉴얼 페이지에서 확인할 수 있습니다.
Systemd Unit
시스템 부팅 시 SSH 서버를 시작하려면 blfs-systemd-units-20240205 패키지에 포함된 sshd.service
유닛을 설치합니다.
make install-sshd
내용
- 설치된 프로그램:
scp, sftp, ssh, ssh-add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan 및 sshd - 설치된 디렉터리:
/etc/ssh, /usr/share/doc/openssh-9.6p1, /var/lib/sshd
간단한 설명
- scp
암호화된 프로토콜을 사용한다는 점을 제외하면rcp
처럼 작동하는 파일 복사 프로그램입니다. - sftp
SSH1 및 SSH2 프로토콜을 통해 작동하는 FTP와 유사한 프로그램입니다. - ssh
암호화된 프로토콜을 사용한다는 점을 제외하면rlogin
/rsh
와 유사한 클라이언트 프로그램입니다. - sshd
ssh
로그인 요청을 수신하는 데몬입니다. - ssh-add
ssh-agent
에 키를 추가하는 도구입니다. - ssh-agent
개인 키를 저장할 수 있는 인증 에이전트입니다. - ssh-copy-id
로컬 키를 사용하여 원격 시스템에서 로그인할 수 있도록 하는 스크립트입니다. - ssh-keygen
키 생성 도구 - ssh-keyscan
여러 호스트에서 공개 호스트 키를 수집하는 유틸리티입니다.