출처 :
https://cookiepress.co.kr/%EC%9A%B0%EB%B6%84%ED%88%AC-ssh/
https://wiseworld.tistory.com/72
sudo apt update
sudo apt upgrade
Openssh
- openssh 설치
sudo apt install openssh-server
- openssh가 실행중인지 확인
sudo systemctl status ssh
- openssh 실행 코드
sudo systemctl start ssh
Openssh Config
sudo vi /etc/ssh/sshd_config
다음과 같이 포트번호 22번이 적혀있고, 이를 수정하면 포트 번호를 변경할 수 있다.
#는 주석처리이고, 수정해주고자 한다면 주석을 빼서 해줘야 할 것 같다.
만약 잘못된 정보라면 추후 수정해놓겠다.
- config 수정 이후에는 ssh를 재시작해주어야 한다.
sudo service sshd restart
- Port 22
- ssh에서 사용하는 포트 지정
- AddressFamily any
- 접속하는 IP 주소의 버전을 지정한다. any는 IPv4와 IPv6 모두 접속이 가능하다.
- ListenAddress 0.0.0.0
- ListenAddress ::
- sshd 데몬이 허가하는 주소를 설정하는 영역이다.
- 여러 네트워크대역이 있을 때 IP대역과 포트를 지정할 수 있다.
- 0.0.0.0은 IPv4 버전을 지정하고, IPv6은 콜론(::)을 사용한다.
- Protocol2
- ssh 프로토콜의 버전을 지정한다.
- HostKey /etc/ssh/ssh_host_key
- ssh1의 호스트 키의 위치를 지정한다.
- HostKey /etc/ssh/ssh_host_rsa_key
- ssh2의 RSA 암호화 방식에서 사용하는 호스트 키 위치를 지정한다.
- HostKey /etc/ssh/ssh_host_dsa_key
- ssh2에서 DSA 암호화 방식에 사용하는 호스트 키 위치를 지정한다.
- KeyRegenerationInterval 1h
- 서버는 암호화키를 이용해 접속하고 나면 해당 키는 자동으로 다시 만들어진다.
- 이는 암호화키를 복제해서 악용하지 못하게하기 위함인데, 이 옵션은 키의 재생성 여부를 설정할 수 있다.
- 0 = 재생성 X / 1h = 1시간 / 1m = 1분
- ServerKeyBits 1024
- 서버 키의 비트 수 지정
- SyslogFacility AUTHPRIV
- syslog와 관련된 facility를 지정하는 항목
- ssh를 통한 접속은 authpriv 형식으로 log를 기록한다.
- facility : 로그를 발생시키는 프로그램 유형
- authpriv : 인증을 필요로하는 프로그램이 발생시키는 메시지
- Loglevel INFO
- 로그 레벨을 지정하는 항목 (기본값 : INFO)
- QUIET (기록 X), FATAL (위험한 오류), ERROR, DEBUGS 등
- INFO는 통계나 기본적인 메세지를 뜻한다.
- LoginGraceTime 2m
- 로그인이 실패한 유저가 발생한 경우, 서버가 연결을 중단하는 시간
- 0이면 제한이 없고, 2m이면 2분 이다.
- PermitRootLogin yes
- ssh를 통한 원격 로그인 사용자가 root로 로그인할 때 허용여부 결정
- StrictModes yes
- 로그인을 허용하기 전, 로그인 사용자가 root로 로그인할 때 허용 여부를 결정한다.
- MaxAuthTries 6
- 접속 실패시 재시도할 수 있는 횟수를 지정한다.
- MaxSessions 10
- 네트워크 주소 (접속 ip주소) 당 최대 연결할 수 있는 세션 수를 지정한다.
- 현재 10으로 설정되어, 하나의 ip로 원격 접속한 창을 최대 10개까지 사용할 수 있다.
- RSAAuthentication yes
- RSA 인증의 사용여부
- PubkeyAuthentication yes
- 공개키를 통한 인증의 사용 여부
- AuthorizedKeysFile .ssh/authorized_keys
- 클라이언트에서 생성한 공개 키를 저장할 파일명 지정
- PasswordAuthentication yes
- 패스워드를 이용한 인증을 허용한다.
- KeberosAuthentication no
- KeberosAuthentication yes
- KeberosTicketCleanup yes
- KeberosGetAFSToken no
- KeberosUseKuserok yes
- Keberos 인증 관련 설정
- GSSAPIAuthentication yes
- GSSAPICleanupCredentials yes
- GSSAPI 인증 관련 설정
- UsePAM yes
- PAM을 통해 제어할 것인지 설정
- Compression yes
- 압축의 허용 여부 설정
- UseDNS yes
- 클라이언트의 호스트 주소를 ip로 해석할 것인지 설정
- PidFile /var/run/sshd.pid
- ssh 데몬의 PID를 기록하는 파일
- Banner none
- 배너 관련 설정으로 로그인 전에 보여주는 메시지파일을 지정한다.
- Subsystem sftp /usr/libexec/openssh/sftp-server
- 보안 ftp 프로그램으로 sftp 서버를 사용하기 위한 설정
사용법
- openssh-clients 패키지를 설치하면 ssh를 이용해 다른 시스템에 원격으로 접속할 수 있다고 한다.
- 형식
- ssh [호스트명 or ip 주소]
- 현재 사용중인 계정으로 다른 시스템에 접속하게 되는데, 만약 서버와 클라이언트의 이름이 같다면 다음 처럼 계정명을 생략할 수 있다.
- ssh [계정명]@[호스트이름]
- 클라이언트와 서버의 계정이 다를 때는 계정이름을 명시해주어야 한다.
- ssh 호스트네임 명령
- 원격으로 서버의 프로그램만 사용할 때, 접속하진 않고 명령만 내릴 때 사용한다.
- ssh [호스트명 or ip 주소]
- 예시
ssh user@192.178.1.10
user라는 계정으로 192.178.1.10 서버에 접속 시도
ssh -l other 192.178.1.10
현재와 다른 계정인 other 로 180 192.178.1.10 서버에 접속 시도
ssh -p 180 192.178.1.10
기본포트는 22번 이지만 180번 포트로 180 192.178.1.10 서버에 접속을 시도한다.
ssh -l other hostname mkdir test
other 계정으로 hostname 이라는 곳에 접속해서 mkdir test 명령을 내린다.
sftp://other@192.178.1.10 /tmp/test
other 계정으로 192.178.1.10 서버에 접속해서 /tmp/test 파일을 가져온다.
scp /tmp/test 192.178.1.10:/tmp/aaa
192.178.1.10 서버에 있는 aaa 파일을 클라이언트 측에 /tmp/test 이름으로 복사한다.
'근황 토크 및 자유게시판' 카테고리의 다른 글
Ubuntu Booting USB 만들기 (0) | 2023.03.09 |
---|---|
[Ubuntu 22.04] Nvidia driver 완전 제거 (0) | 2023.03.09 |
리눅스 시스템 모니터링 feat GPU 상태 확인 (watch) (2) | 2023.03.03 |
[Ubuntu 22.04] Nvidia driver & Cuda 설치 (0) | 2023.03.02 |
[VS Code] argument를 설정한 debug (0) | 2023.02.14 |