Linux
[Linux] ssh, sshpass, scp 명령어 사용법
chul542
2021. 9. 14. 11:03
클라언트 ssh, sshpass, scp 명령어
- 기본 ssh 접속
ssh {서버ID}@{서버IP} -p{포트} : ssh접속 ex) ssh cheol@192.168.152.11 -p 12022
- sshpass로 one line 명령어로 ssh 접속
sshpass -p {비밀번호} ssh -P {포트} {서버ID}@{서버IP} ex) sshpass -p abcd ssh -P 12022 cheol@192.168.152.11 sshpass -f {비밀번호txt파일경로} ssh -P {포트} {서버ID}@{서버IP} ex) sshpass -f ../passwd.txt ssh -P 12022 cheol@192.168.152.11
- sshpass&ssh로 서버에 명령어 전달
sshpass -p {비밀번호} ssh -p {포트} {서버ID}@{서버IP} {command} ex) sshpass -p abcd ssh -p 12022 cheol@192.168.152.11 rm -rf *
- sshpass&scp로 서버-클라이언트, 클라이언트-서버 파일 복사
sshpass -p {비밀번호} scp -P {포트} {파일경로} {서버ID}@{서버IP}:{파일경로} sshpass -p {비밀번호} scp -P {포트} {서버ID}@{서버IP}:{파일경로} {파일경로} *포트 옵션 대소문자 주의 ssh는 소문자(-p), scp는 대문자(-P) ex) sshpass -p abcd scp -P 12022 ./abc.txt cheol@192.168.152.11:/home/cheol/ ex) shpass -p abcd scp -P 12022 cheol@192.168.152.11:/home/cheol/abc.txt /home/cheol
- Host Key checking 관련 문제 발생 시
-o StrictHostKeyChecking=no 를 옵션으로 추가
ex) sshpass -p abcd scp -o StrictHostKeyChecking=no -P 12022 ./abc.txt cheol@192.168.152.11:/home/cheol/ ex) sshpass -p abcd ssh -o StrictHostKeyChecking=no -p 12022 cheol@192.168.152.11 rm -rf *
서버 sshd 명령어
service sshd status : 서비스 상태 확인
service sshd start : 시작
service sshd stop : 중지
service sshd restart : 재시작
netstat -anp | grep LISTEN | grep sshd : ssh 포트 확인
* sshd 설정 파일 경로 /etc/ssh/sshd_config
SSH의 간략한 History
- Secure Shell (SSH) - 소문자 ssh는 클라인트 도구를 지칭. 대문자 SSH는 프로토콜과 프로그램 통칭.
- 원격지의 컴퓨터와 안전하게 통신하기 위한 필수적인 수단
- 과거엔느 telnet, rsh 같은 프로토콜 사용. 암호화 되지 않아서 보안상 이슈 생김.
- 1995년 Tatu Ylönen (Helsinki University of Technology)가 학내 안전하지 않은 네트워크에 보안 연결 할 수 있게 ssh 첫 버전 출시. Communication Security 라는 회사 창립 후 SSH는 상용 라이센스화.
- 1992년 ssh가 오픈소스 라이센스로 풀린 1.2.12버전이 사용되었고 이 버전 기반으로 Björn Grönvall 가 OSSH를 제작 했고 Björn Grönvall기반으로 OpenBSD 개발자 들이 OpenSSH 를 개발.
- 현재 국제 인터넷 표준화 기구 (Internet Engineering Task Force, IETF)에서 SSH v2의 표준을 관리.
SSH 사용 하는 이유
- 기존 프로토콜은 암호화가 되지 않아서 네트워크 스피닝 (네트워크 상의 패킷 감청)과 같은 공격에 취약.
- 아이디, 암호, 사용자 계정 정보, 개인 신장 정보 등 서버간 모든 통신 내용 노출.
SSH 사용
- 원격 서버의 쉘에 접속
- 원격 서버와 파일 안전하게 전송
- 원격 서버의 특정 프로그램에 TCP 연결을 맺을 때
- 원격서버를 확인 할 때
- 보안이 필요한 모든 TCP 통신