내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
서비스 이름: SSHD
서버 기본 프로그램: /usr/sbin/sshd
서버 구성 파일: /etc/ssh/sshd config
SSH 클라이언트: Putty, Xshell, CRT, MobaXterm, FinalShell
SSH 서버: OpenSSH
SSH 서버: 기본적으로 TCP 포트 22가 사용되며, 보안 프로토콜 버전은 sshv2 2개 외에 1개(허점 있음)도 있습니다.
SSH 서버에는 주로 SSH 원격 링크와 SFTP 서비스라는 두 가지 서비스 기능이 포함됩니다.
기능: SSHD 서비스는 SSH 프로토콜을 사용하여 원격 제어를 수행하거나 컴퓨터 간에 파일을 전송합니다.
이전에 Telnet을 사용하여 파일을 전송하는 것과 비교하면 Telnet은 일반 텍스트 전송을 사용하고 SSH는 암호화된 전송을 사용하므로 훨씬 안전합니다.
OpenSSH는 SSH 프로토콜을 구현하고 다양한 UNIX 및 Linux 운영 체제에 적합한 오픈 소스 소프트웨어 프로젝트입니다. Centos 7 시스템에는 기본적으로 openssh 관련 소프트웨어 패키지가 설치되어 있으며, 부팅 시 자동으로 시작되도록 sshd 서비스가 추가되어 있습니다.
[단, 버전 7에는 문제와 취약점이 있어 업그레이드가 필요합니다. 현재 최신 버전은 9.8입니다.]
버전 보기:ssh -V
"systemctl start sshd" 명령을 실행하여 sshd 서비스를 시작하세요.
ssh_config와 sshd_config는 모두 ssh 서버용 구성 파일입니다. 차이점은 전자는 클라이언트용 구성 파일이고 후자는 서버용 구성 파일입니다.
SSH는 기본적으로 Linux 시스템을 원격으로 관리하는 데 사용됩니다. 그 이유는 매우 간단합니다. 텔넷 및 FTP와 같은 전송 방법은 사용자 인증 정보를 일반 텍스트로 전송하므로 본질적으로 안전하지 않으며 네트워크 도청의 위험이 있습니다. 현재는 SSH(Secure Shell)가 더 안정적입니다.
원격 로그인 세션 및 기타 네트워크 서비스에 보안을 제공하도록 설계된 프로토콜입니다. SSH 프로토콜을 사용하면 원격 관리 시 정보 유출을 효과적으로 방지할 수 있으며, 전송되는 모든 데이터를 SSH를 통해 암호화할 수 있으며, DNS 스푸핑 및 IP 스푸핑도 방지할 수 있습니다.
1.3.1. 로그인 방법 1
ssh [원격 호스트 사용자 이름] @[원격 서버 호스트 이름 또는 IP 주소] -p 포트
사용자 이름을 사용하려면lisi
IP 주소에 연결된 ID는192.168.1.100
서버이며 서버의 SSH 서비스는 포트에서 실행됩니다.22
, 다음 명령을 사용해야 합니다:
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。
첨부된
호스트 매핑
1.3.2. 로그인 방법 2
ssh -l [원격 호스트 사용자 이름] [원격 서버 호스트 이름 또는 IP 주소] -p 포트
-l: -l 옵션, 로그인 이름을 지정합니다.
-p: -p 옵션, 로그인 포트 지정(서버 포트가 기본값이 아닌 경우 -p를 사용하여 로그인할 포트를 지정해야 함)
(많이 사용하진 않음)
공개 키에 대한 쿼리
클라이언트에 대한 쿼리
서버는 자신의 공개 키를 쿼리합니다.
참고: 시스템은 처음으로 서버에 로그인할 때 원격 호스트의 정보를 저장하지 않습니다. 호스트의 신원을 확인하기 위해 사용자에게 연결을 계속할지 묻는 메시지가 표시됩니다. 이때 시스템은 원격 서버 정보를 사용자 홈 디렉터리의 $HOME에 기록합니다. 다음 로그인 시 호스트 정보가 저장되므로 다시 묻는 메시지가 표시되지 않습니다. .
OpenSSH는 다음에 동일한 컴퓨터에 액세스할 때 공개 키를 확인합니다. 공개 키가 다른 경우 OpenSSH는 DNS 하이재킹과 같은 공격으로부터 사용자를 보호하기 위해 경고를 발행합니다.
해결책
1. SSH를 통해 원격 호스트에 로그인할 때 다음과 같이 "-o StrictHostKeyChecking=no" 옵션을 추가합니다.
ssh -o StrictHostKeyChecking=아니요 192.168.xxx.xxx
2. 이 프롬프트를 완전히 제거하는 방법은 /etc/ssh/ssh_config 파일(또는 $HOME/.ssh/config)에서 구성을 수정하고 다음 두 줄의 구성을 추가하는 것입니다.
StrictHostKeyChecking 없음
UserKnownHostsFile /dev/null
하지만 추가하지 않는 것이 가장 좋습니다
일반 구성 서버
vim /etc/ssh/sshd_config
다른 사람이 강제로 크래킹하는 것을 방지하려면 포트를 변경해야 합니다.
ListenAddress는 SSHD 서버에 바인딩된 IP 주소를 설정합니다. 0.0.0.0은 모든 주소를 수신한다는 의미입니다.
보안 제안: 호스트가 공용 네트워크에서 SSH 액세스가 필요하지 않은 경우 수신 주소를 내부 네트워크 주소로 변경할 수 있습니다. 이 값은 로컬 IP 주소 또는 모든 주소로 쓸 수 있습니다. 즉, 0.0.0.0은 모두를 나타냅니다. IP.
누군가 SSH를 사용하여 시스템에 로그인하면 SSH는 정보를 기록합니다. 기록되는 정보 유형은 AUTHPRIV입니다. sshd 서비스 로그는 /var/log/secure에 저장됩니다.
일반적으로 클라이언트의 소스가 정상적이고 합법적인지 확인하기 위해 DNS를 사용하여 클라이언트의 호스트 이름을 확인합니다. 그러나 일반적으로 인트라넷 내에서 상호 연결하는 경우 이 베이스가 no로 설정되므로 연결 속도가 느려집니다. 더 빨라지세요.
참고: 서버 응답 속도를 향상하려면 DNS 역방향 확인을 비활성화하세요.
일부 보안 구성 및 보안 튜닝뿐만 아니라
PermitRoot로그인 루트 로그인 허용 여부는 기본값으로 허용되나, no로 설정하는 것을 권장합니다.실제 프로덕션 환경 서버에서는 루트 계정으로 직접 로그인하는 것을 허용하지 않습니다., 일반 사용자만 로그인이 허용됩니다. 루트 사용자를 사용한 후 루트 사용자로 전환해야 합니다.
비밀번호인증 예
물론 비밀번호 확인이 필요하므로 여기에 yes라고 입력하거나 no로 설정할 수 있습니다. 실제 프로덕션 서버에서는 다양한 보안 수준 요구 사항에 따라 일부 설정에서는 비밀번호 로그인이 필요하지 않으며 인증을 통해 로그인할 수 있습니다. 열쇠.
PermitEmptyPasswords 아니요
빈 비밀번호를 가진 사용자의 로그인을 허용할지 여부. 기본값은 no입니다. 빈 비밀번호를 사용한 로그인은 허용되지 않습니다.
PrintLastLog 예
마지막 로그인 정보를 표시합니다! 기본값은 예입니다.
최대 인증 시도 횟수 6
연결당 허용되는 최대 인증 수를 지정합니다. 기본값은 6입니다.
인증 실패 횟수가 이 값의 절반을 초과하면 연결이 강제로 끊어지고 추가 실패 로그 메시지가 생성됩니다.
기본 3회
pam 모듈 활성화
논평
흑백 목록
사용자 허용
특정 사용자의 로그인만 허용하거나 금지하려면 AllowUsers 또는 DenyUsers 구성을 사용할 수 있습니다. 둘의 사용법은 비슷합니다(동시에 사용하지 않도록 주의하세요).
AllowUsers 구성
예를 들어 zhangsan 및 wangwu 사용자만 다른(lisi) 사용자에게 로그인하도록 허용된 경우
다음에 추가
AllowUsers 장산@192.168.10.10 왕우
3단계로 나누어집니다:
클라이언트는 Xshell 클라이언트에서 키(공개 키와 개인 키)를 생성합니다.
공개 키를 Linux 서버의 ~/.ssh/authorized_key 파일에 넣습니다.
키를 사용하여 로그인하도록 SSH 클라이언트(Xshell 클라이언트)를 구성합니다.
1. 먼저 xshell 도구에서 공개 키를 생성합니다.
2048의 길이를 조정하세요. 다음 단계를 수행하면 이름과 비밀번호를 설정할 수 있습니다.
생성이 완료되면 공개 키가 있으므로 저장하세요.
pub으로 끝나는 파일
그런 다음 Linux 머신을 엽니다.
~/.shh 디렉터리로 전환합니다(처음에는 비밀번호 없이 ssh를 실행해야 합니다. 그렇지 않으면 .shh 파일이 없을 수 있습니다).
공개 키 업로드
물론 표준 이름도 Authorized_keys로 변경해야 합니다.
개인 키 백업 생성
비밀번호 없는 로그인
성공적 로그인
스프링보드를 준비하세요
ssh-keygen 명령의 "-t" 옵션은 공개 키와 개인 키를 생성하는 알고리즘 유형을 지정하는 데 사용됩니다.
ssh-복사-id [email protected]
사용ssh-copy-id
도구: 이 명령은 공개 키 복사 프로세스를 자동으로 처리합니다.id_rsa.pub
공개 키의 내용이 원격 서버에 추가됩니다.~/.ssh/authorized_keys
파일에서.
암호를 입력: 이 방법으로 원격 서버에 접속하는 것은 이번이 처음이므로 원격 루트 사용자의 비밀번호를 입력하라는 메시지가 나타날 수 있습니다.
Springboard 79 19를 통해 로그인
ssh 루트@192.168.88.19
권한 수정
vim /etc/ssh/sshd_config
17, 43, 65행
SSH 서비스 다시 시작
다시 시도하십시오
포트 지정, 성공
콘텐츠가 파일 리소스로 마이그레이션됩니다.
DSA 서명 알고리즘은 기본적으로 비활성화되어 있습니다.
파일 준비
openssh 공식 홈페이지OpenSSH: 릴리스 노트
openssh9.8p1에는 openssl 버전이 1.1.1 이상이어야 하므로 openssl을 업그레이드하고 설치해야 합니다.
공식 웹 사이트OpenSSL 1.1.1v 릴리스 · openssl/openssl · GitHub