제로원:SSH

통진고위키
안중원 (토론 | 기여)님의 2020년 4월 4일 (토) 22:40 판
SSH에 관련하여 질문이 있거나 오류가 발생하면 토론 문서에 써놓으십시오. 친절한 편집자가 그에 관한 답을 달아 줄 것입니다. 유용한 답은 본 문서에 기재될 수 있습니다.
ZERO-ONE 포털
제로원.png

SSH란 Secure SHell의 약자로, 서버 컴퓨터를 원격으로 접속하여 명령을 실행할 수 있게 하는 프로그램이다. SSH를 시작하기 전에 반드시 이 문서를 완독하도록 하자.

SSH 자체에 대해서는 위키백과 참고

시작하기

Windows

Windows에서는 XShell 사용을 추천한다. 한글로 되어있어 사용하기 편하다. SFTP도 함께 사용하려면 해당 사이트에서 XFtp도 같이 설치하면 좋다.

  1. 설치가 완료되고 실행하면 "세션" 창이 열린다. 안 열리는 경우는 "파일" > "열기" 하면 된다.
  2. 세션 창에서 "새로 만들기"를 누른다.
  3. "연결"에서 다음을 채워넣는다.
    • 이름: 자신이 쓰고 싶은 이름. 예) 통진고위키
    • 프로토콜: 그대로 둔다. (SSH)
    • 호스트: 접속할 서버 주소. 예) tjhswiki.com
    • 포트 번호: 그대로 둔다 (22)
  4. "연결" > "사용자 인증"에서 로그인 정보를 채워넣는다. 로그인 정보는 제로원 회장이 알려줄 것이다.
  5. "확인"을 누르면 세션이 만들어진다. 이제 방금 만든 세션을 선택하고 "연결"을 누르면 연결될 것이다.

macOS/리눅스

macOS에서는 주로 터미널에서 직접 SSH에 접속한다. 꼬우면 윈도우로 재부팅하자.

아직 재부팅 안 한 사람은 터미널을 틀면 된다. 앞으로 명령어를 몇 개 입력할 건데 중간에 그만두고 싶으면 CTRL + C를 누르면 종료된다.

1. ssh 명령어로 접속한다. [아이디]에 회장이 알려준 아이디를 입력한다.

$ ssh [아이디]@tjhswiki.com

2. 그러면 다음과 같은 문구가 뜰 수도 있고 안 뜰 수도 있다.

The authenticity of host 'tjhswiki.com (203.245.28.148)' can't be established.
ECDSA key fingerprint is SHA256:[RSA 키]
Are you sure you want to continue connecting (yes/no)?

3. 만약에 뜰 경우에는 yes를 입력해주면 된다. 이제 다음과 같이 비밀번호를 입력하라고 뜰 것이다.

아이디@tjhswiki.com's password:[비밀번호]

4. 그러면 회장이 알려준 비밀번호를 입력하면 된다. 그러면 뭐라고 뭐라고 뜨면서 결국은 이렇게 뜰 것이다.

아이디@zeroone0101:~$

5. 몇 가지 리눅스 명령어(예: echo hello)를 입력해 보아도 좋다. 참고로 echo hello를 입력하면 hello라고 뜰 것이다.

6. exit 명령으로 ssh를 종료하고 원래의 터미널로 돌아올 수 있다.

[아이디]@zeroone0101:~$ exit
logout
Connection to tjhswiki.com closed.

macOS/리눅스 (고급)

Windows에서는 한번 세팅하면 클릭 몇 번으로 접속할 수 있는데, macOS에서는 접속할 때마다 비밀번호 입력하기가 귀찮을 수도 있다. 그럴 때는 key를 만들어서 사용하도록 하자.

1. 전에 만들어놓은 SSH 키가 있는지 확인한다. No such file or directory가 뜨면 SSH 키를 새로 만들어야 한다. 만약에 ssh-rsa로 시작하는 내용이 나오면 만들기를 건너뛰고 3단계로 간다.

$ cat ~/.ssh/id_rsa.pub

2. ssh-keygen 명령어를 실행하면 다음과 같이 순서대로 뜰텐데 다 디폴트를 쓰면 되므로 엔터를 누른다.

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/joongwon/.ssh/id_rsa):[엔터]
Enter passphrase (empty for no passphrase):[엔터]
Enter same passphrase again:[엔터]
Your identification has been saved in /Users/joongwon/.ssh/id_rsa.
Your public key has been saved in /Users/joongwon/.ssh/id_rsa.pub.

3. scp 명령어로 ~/.ssh/에 저장된 비밀키를 서버에 업로드한다. 아직은 비밀번호를 입력해야 한다.

$ scp ~/.ssh/id_rsa.pub [아이디]@tjhswiki.com:id_rsa.pub
아이디@tjhswiki.com's password:[비밀번호]
id_rsa.pub                                    100%  418    68.4KB/s   00:00

4. 위 문단에서처럼 ssh로 서버에 접속한 뒤, 서버에서 다음과 같이 키를 추가하고 업로드한 키는 삭제한다.

$ cat ~/id_rsa.pub >> .ssh/authorized_keys
$ rm ~/id_rsa.pub

5. exit 명령어로 로그아웃했다가 ssh 명령을 다시 실행해보자. 비밀번호 없이 접속했다면 성공이다.

자신이 보안을 좀 챙긴다면 여기 나온대로 해도 좋다.

리눅스 기본 명령어

  • ls: 현재 디렉토리에 있는 파일과 폴더의 목록.
  • ll: 현재 디렉토리에 있는 파일과 폴더의 자세한 정보를 포함한 목록.
  • la: 현재 디렉토리에 있는 숨김파일 및 폴더("."으로 시작하는 이름)를 포함한 모든 파일 및 폴더의 목록.
  • cd [디렉토리]: [디렉토리]로 이동.
  • cd ..: 상위 디렉토리로 이동.
  • cat [파일] : [파일]의 내용 출력.
  • echo [문자열]: [문자열] 출력.
  • cp [src] [dest]: [src] 파일을 [dest] 파일로 복사. [dest]가 이미 있는 디렉토리이면 그 디렉토리 안에 복사한다.
  • mv [src] [dest]: [src] 파일을 [dest] 파일로 이동. [dest]가 이미 있는 디렉토리이면 그 디렉토리 안에 복사한다.
  • rm [파일]: [파일] 제거.
  • rm -r [디렉토리]: [디렉토리] 및 그 안의 파일 모두 제거.
  • exit: 로그아웃.