티스토리 뷰

728x90
반응형

Access to remote server using ssh key with iterm2

환경

  • Mac OS
  • ssh-keygen (SSH에 사용할 키 발급)
  • ssh-copy-id (발급된 공개키를 서버에 전송)
  • 원격 서버 (Ubuntu 16.04) 및 사용자

서버에 사용자가 추가되어 있다고 가정한다. 사용자 추가에 대한 부분은 많은 자료들이 존재하므로 참고하도록 한다.

ssh-copy-id 설치

ssh-copy-id는 로컬에서 발급된 공개키를 서버로 전송할 때 사용하는 패키지다.

$ brew install ssh-copy-id

SSH Key 발급

~/.ssh 폴더를 기준으로 한다.

# ssh-keygen [-t] [rsa] [-b] [2048]
# -t : dsa, ecdsa, ed25519, rsa, rsa1 중에 어떤 암호화 알고리즘을 선택할지 지정 (기본 값, rsa)
# -b : key를 생성할 때 bit 수 지정 (기본 값, 2048)
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/<현재 사용자>/.ssh/id_rsa): <<< 여기에 저장될 파일 경로 또는 파일명 입력
Enter passphrase (empty for no passphrase): <<< 비밀번호로 사용할 값
Enter same passphrase again: <<< 다시 입력
Your identification has been saved in <파일명>
Your public key has been saved in <파일명>.pub.

키 파일에 대한 권한 문제
ssh-key을 통해서 처리한 경우는 문제가 되지 않을 수 있지만 수동으로 처리한 경우는 다음과 같이 파일 권한을 설정해 줘야 한다.

  • 공개 키 : 0644 (-rw-r--r--)
  • 개인 키 : 0600 (-rw-------)
    위와 같이 권한을 설정해 주지 않으면 원격 서버에 연결했을 떄 오류가 발생하며 접속이 허용되지 않는다.

발급된 공개 키 서버로 전송

별다른 입력이 없이 기본으로 처리했다면 ~/.ssh 폴더에 private key와 public key 파일이 생성된다.
파일명을 test라고 지정했다면 'test', 'test.pub' 파일이 존재할 것이다.

# ssh-copy-id -i [key path or name] [username in server]@[server ip]
$ ssh-copy-id -i test.pub ccambo@192.168.10.44
/usr/local/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "test.pub"
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
test@[IP Address]'s password:

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'test@[IP Address]'"
and check to make sure that only the key(s) you wanted were added.

실체 키 추가 여부는 지정한 서버의 사용자로 로그인을 해서 ~/.ssh/authorized_keys 파일에 지정한 키가 제대로 추가되었는지 확인하면 된다.

SSH로 접속하기

# ssh -i [private key name] [username in server]@[server id] -p [port number]
$ ssh -i test ccambo@192.168.10.44

SSH 접속 설정하기

~/.ssh/config 파일을 통해서 접속을 쉽게 처리할 수 있다.

config 파일이 경로에 없다면 생성한다.

$ cd ~/.ssh
$ touch config

config 파일을 열고 아래와 같이 설정해 주면 된다.

Host ccamboServer
    HostName [IP Address]
    User [Username]
    Port [Port Number]
    IdentityFile ~/.ssh/[private key name]

Host Name2
    HostName [IP Address]
    User [Username]
    Port [Port Number]
    IdentityFile ~/.ssh/[private key name]

설정을 통해서 SSH 접속은 다음과 같이 지정한 Host 이름을 기준으로 하면 된다.

# ssh [host name in config file]
$ ssh ccamboServer

참고 자료

728x90
반응형
댓글
댓글쓰기 폼