더북(TheBook)

일단 공개 키는 생성하고 나면 호스트의 .ssh/authorized_keys 파일로 복사할 수 있다. 공개 키가 있어야 클라이언트에서 개인 키로 서명한 암호 메시지가 진짜인지 호스트에서 실행되는 OpenSSH가 검증할 수 있기 때문이다. 메시지가 검증되면 SSH 세션이 시작된다.

일단 호스트에 어떤 사용자 계정으로 로그인할지 결정해야 한다. 이 책의 예제에서는 ubuntu라는 계정으로 로그인한다. 공개 키를 계정 홈 디렉터리(/home/ubuntu/) 아래에 있는 .ssh 디렉터리에 복사해야 하는데 .ssh 디렉터리가 없으면 mkdir 명령으로 생성해야 한다.

여기에서는 원격 호스트에 완전한 SSH 셸 세션을 열지 않고도 간단히 명령 하나를 실행할 수 있는 멋진 방법을 먼저 소개하고자 한다. 다음 명령처럼 일반적인 ssh 명령 뒤에 원격에서 실행할 명령을 입력하면 된다.

ubuntu@base:~$ ssh ubuntu@10.0.3.142 mkdir -p .ssh
ubuntu@10.0.3.142's password:

이때 호스트의 패스워드를 입력해야 한다. 패스워드를 입력하고 나면 홈 디렉터리(/home/ubuntu/) 밑에 .ssh 디렉터리가 생성된다.

입력할 명령을 읽기 쉽게 백슬래시(\) 문자를 이용해 세 줄로 나눴다. 백슬래시는 Bash가 다음 줄을 현재 줄에 연결해서 읽게 한다. 이때 백슬래시 뒤에는 공백을 포함해 어떠한 문자도 입력하면 안 된다. 그러면 큰일이 난다.

ubuntu@base:~$ cat .ssh/id_rsa.pub \ ← cat 명령이 id_rsa.pub 파일의 내용을 읽는다
| ssh ubuntu@10.0.3.142 \ ← 파일 내용을 ssh 명령에 파이프로 전달한다
"cat >> .ssh/authorized_keys" ← 텍스트를 authorized_keys라는 파일에 추가한다
ubuntu@10.0.3.142's password:
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.