2023. 10. 9. 10:56ㆍ리눅스/CentOS
원격 접속 - SSH
- secure shell; 보안된 shell
- 암호화 된 통신을 주고 받는 CLI 환경의 원격 접속
- Linux에서 기본적으로 제공
> 운영체제 설치 시 자동으로 ssh 구성 요소 설치
+ 부팅 시 자동 실행 및 방화벽 설정까지 전부 완료된 상태
- 통신하려는 장치들이 개인 key 혹은 공개 key 교환을 통하여 암호화 key를 생성
암호화 key를 이용하여 주고받는 데이터를 전부 암호화/복호화
- version 1과 version 2가 존재하며 현재는 version 2를 사용
- 정보
패키지 : openssh-*
데몬 : sshd
방화벽 : port=22/tcp, service=ssh
설정파일 : /etc/ssh/sshd_config
- 접속 명령어
ssh <접속할 IP> : 명령어를 입력한 사용자와 같은 이름의 사용자로 해당 장치에 접속 시도
ssh -l <계정명> <접속할 IP> : 해당 장치에 옵션에 입력한 사용자로 접속 시도
ssh <계정명>@<접속할 IP> : 해당 장치에 옵션에 입력한 사용자로 접속 시도
- 부가 서비스
1. sftp
ssh + ftp ; 평문 통신으로 데이터를 주고받는 ftp를 ssh를 사용하여 암호화
sftp <계정명>@<접속할 IP>
2. scp
ssh + rcp ; 평문 통신으로 데이터를 주고받는 rcp를 ssh를 사용하여 암호화
* rcp : remote copy; 장치와 장치 간의 파일 복사 명령어
rcp [장치IP]:원본 [장치IP]:복사할위치
> 내 장치의 파일을 상대방 장치에 복사해 주거나 상대방 장치의 파일을 내 장치에 복사
패키지 확인 및 서비스 상태 확인
설정파일 /etc/ssh/sshd_config 확인
- 기본적으로 LoginGraceTime은 120초(2분)로 설정되어 있으며, 이 기간 동안에 로그인 프로세스를 완료하지 못한 사용자의 접속 시도는 거부된다.
- StrictModes yes: 사용자의 홈 디렉토리와 .ssh 디렉토리에 대한 권한을 검사한다. 이 디렉토리들은 사용자의 개인 키와 공개 키를 저장하고, 권한 설정이 제대로 되지 않았다면 보안 문제를 발생시킬 수 있다. StrictModes를 활성화하면 이러한 디렉토리의 권한이 제대로 설정되었는지 확인하고, 제대로 설정되지 않았다면 접속을 거부한다. 또한 사용자의 ~/.ssh 디렉토리 안에 있는 authorized_keys 파일에 대한 권한을 검사한다. 이 파일은 사용자가 공개 키 인증을 통해 접속할 때 사용되며, 이 파일의 권한 설정이 제대로 되지 않았다면 보안 문제를 발생시킬 수 있다. StrictModes를 활성화하면 이러한 파일의 권한이 제대로 설정되었는지 확인하고, 제대로 설정되지 않았다면 접속을 거부한다.
PubkeyAuthentication 옵션은 SSH 서버가 공개 키 인증을 허용할지 여부를 설정하는 데 사용된다. SSH 공개 키 인증은 비밀번호를 사용하는 대신 공개 키와 개인 키 쌍을 사용하여 사용자를 인증하는 방법 중 하나다. 이를 통해 더 안전하고 효율적인 로그인 방법을 제공할 수 있다. 공개 키 인증은 비밀번호 인증보다 안전하며, 비밀번호 노출 또는 강력한 비밀번호를 기억하는 부담을 줄일 수 있다. 그러나 공개 키를 사용하기 위해 사용자가 공개 키를 생성하고 서버에 등록해야 하므로 초기 설정에는 조금 더 번거로울 수 있다.
man sshd_config 확인
ssh 실습
sftp 실습
공개키 이용한 인증
리눅스끼리라면 명령어 'ssh-copy-id <계정명>@<ip 주소>'을 통해 쉽게 전송 할 수 있다.
문제
가상머신 두 개 전부 PermitRootLogin 값은 no 로 설정
server : 192.168.X.128, /tmp 속에 A라는 파일 생성
client : 192.168.X.129, /test 디렉터리 생성
scp 예문 두개 다 실행 해보기
(단, 하나 완료 후 반드시 /test/A 삭제 할 것)
scp 192.168.X.128:/tmp/A /test
scp /tmp/A 192.168.X.129:/test
* 참고 *
PermitRootLogin 정책 설정으로 인해 위의 scp 명령어 사용 X
ssh 계정명@192.168.X.128를 참고하여
위의 scp 명령어를 변경
putty를 두 개 켜서 진행(server 하나, client 하나)하되
root까지 접속하여 실습 진행
scp 예문 중 하나는 그냥 동작하지만 나머지는 오류 출력
(Linux 1 수업에서 배운 내용으로 해결이 가능)
* 확인 사항
scp 명령어들, 오류 해결 내용