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 패키지에는 ssh 클라이언트와 sshd 데몬이 포함되어 있습니다. 이는 네트워크를 통한 인증 및 후속 트래픽을 암호화하는 데 유용합니다. ssh 및 scp 명령은 각각 텔넷과 rcp의 보안 구현입니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
다른 컴퓨터에 연결할 때 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
/usr/etc
에 설치되지 않도록 합니다./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에 대한 명령줄 편집 및 기록 기능을 활성화합니다.
~/.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
의 매뉴얼 페이지에서 확인할 수 있습니다.
시스템 부팅 시 SSH 서버를 시작하려면 blfs-systemd-units-20240205 패키지에 포함된 sshd.service
유닛을 설치합니다.
make install-sshd
rcp
처럼 작동하는 파일 복사 프로그램입니다.rlogin
/rsh
와 유사한 클라이언트 프로그램입니다.ssh
로그인 요청을 수신하는 데몬입니다.ssh-agent
에 키를 추가하는 도구입니다.