오픈SSH(OpenSSH, OpenBSD Secure Shell)[a]는 시큐어 셸 (Secure Shell, SSH) 프로토콜을 이용하여 암호화된 통신 세션을 컴퓨터 네트워크에 제공하는 컴퓨터 프로그램의 모임이다. SSH 커뮤니케이션스 시큐리티가 제공하는 사유 시큐어 셸 소프트웨어 제품군을 대체할 목적으로 오픈 소스로 작성되었다. 참조
네트워크를 통해 원격 호스트에 접속하기 위하여 SSH를 사용한다.
SSH는 암호화 키를 사용하여 plaintext를 암호화
, 복호화
하여 데이터를 보호한다.
- ubuntu
$ apt install openssh-server
필요한 경우 설치
$ apt install openssh-client
대부분의 환경에서는 openssh-client가 기본적으로 설치되어있다.
$ systemctl status ssh
ssh의 실행 상태를 확인하고 필요한 경우 systemctl stop ssh
또는 systemstl start ssh
명령을 사용한다.
부팅시 자동으로 실행되도록 지정해야하는 경우 systemctl enable ssh
명령으로 활성화하고, disable
로 비활성화 할 수 있다.
lxc 컨테이너를 RUNNING
상태로 전환한 뒤 해당 IP를 통해 접속한다.
$ ssh '접속할 서버의 계정'@'IP 주소'
클라이언트 서버에서 접속시 사용할 키를 생성한다.
$ ssh-keygen
이를 통해 RSA 알고리즘 기반의 키를 생성하였다. .ssh
디렉토리에 접근하면 id_rsa
, id_rsa.pub
파일을 확인할 수 있다.
$ ssh-copy-id '로그인 할 서버의 사용자명'@'IP주소'
키를 타겟 서버에 자동으로 복사해주는 명령이다.
패스워드를 입력하지 않고 접속할 수 있게 되었다.
SCP는 SSH 프로토콜
을 사용해 파일과 디렉토리를 원격 서버로 복사한다.
$ scp '복사할 파일 경로' '원격 서버의 사용자명'@'IP주소':'복사한 파일을 저장할 경로'
로컬 서버에 있는 파일을 원격 접속 서버에 복사해보았다.
원격 접속한 서버에서 해당 파일을 정상적으로 확인할 수 있었다.
(🤔 permission denined
에러가 난다면 경로의 접근권한을 확인해보자!)
ssh-copy-id -i .ssh/id_rsa.pub '원격 서버의 사용자명'@'IP주소'
명령을 통해 쉽게 키를 복사할 수도 있다.