Tip) SSH Key 로그인과 alias를 사용하여 SSH 접속 명령어 단축하기
SSH 접속
일반적인 패스워드 방식의 SSH 접속은 아래와 같이 이뤄집니다
1
2
$ ssh {user}@{ip} -p {port num}
{user}@{ip}'s password: 비밀번호 입력
그러나 강조되고 반복되는 접속이 필요할 경우 강아지를 불안하게 하기 때문에
생각보다 귀찮을 수 있습니다
따라서 이러한 과정을
- SSH Key를 통한 자동 로그인
- alias를 통한 명령어 단축
을 통해 간편하게 바꾸도록 하겠습니다
SSH key 생성
SSH Key가 생성되어 있지 않다면 키를 생성해줍니다
1
$ ssh-keygen -t rsa
이때 key의 경로를 따로 지정하지 않았다면 $HOME/.ssh
아래에 공개키와 개인키가 생성됩니다.
공개키 암호 알고리즘의 작동 방식이 궁금하다면 아래의 글을 참고하세요.
SSH key 경로에 파일이 생성되었는지 확인합니다.
1
2
3
4
5
$ ls -al $HOME/.ssh
drwx------ 2 {user} {user} 4096 Oct 30 00:55 .
drwxr-xr-x 50 {user} {user} 4096 Jan 27 23:26 ..
-rw------- 1 {user} {user} 2622 Aug 25 2021 id_rsa
-rw-r--r-- 1 {user} {user} 582 Aug 25 2021 id_rsa.pub
보안 상의 이유로 생성된 Key의 권한을 수정해주는 것을 권장합니다.
1
2
3
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
생성된 Key를 원격 서버에 전송해줍니다. 방법은 두가지가 있습니다
ssh-copy-id
사용
1
$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub {user}@{ip}
scp
사용
1
$ scp -P {port num} $HOME/.ssh/id_rsa.pub {user}@{ip}:id_rsa.pub
ssh를 통해 서버로 접속한 후 아래의 명령어를 수행합니다.
1
$ cat $HOME/id_rsa.pub >> $HOME/.ssh/authorized_keys
만약 $HOME/.ssh
폴더가 없다면 아래의 명령어로 생성한 후 다시 위의 명령어를 수행합니다.
1
2
$ cd $HOME
$ mkdir .ssh
로컬로 이동합니다.
1
$ exit
ssh 접속을 테스트합니다.
1
$ ssh {user}@{ip} -p {port num}
비밀번호 입력 없이 접속이 가능하다면 성공입니다!
비밀번호가 여전히 필요하다면 원격 서버에서 공개키 인증을 활성화합니다
1
$ vi /etc/ssh/sshd_config
PubkeyAuthentication
를 찾아 yes
로 바꿔줍니다. 기본값은 yes
로 되어있습니다.
SSH 접속 단축 명령으로 만들기
alias
를 사용하여 SSH 접속 명령을 단축키로 지정합니다.
사용하는 shell의 설정 파일을 엽니다. bash라면 bashrc
, zsh라면 zshrc
와 같은 꼴입니다.
1
2
$ grep {user} /etc/passwd
{user}:x:1000:1000:,,,:/home/{user}:/usr/bin/zsh
현재 저는 zsh를 사용중이므로, .zshrc
를 엽니다.
1
$ vi $HOME/.zshrc
.zshrc
맨 아래에 아래의 구문을 입력합니다.
1
alias {단축 명령}='ssh {user}@{ip} -p {port num}'
저장하고 종료합니다. 변경된 설정을 적용합니다.
1
$ source $HOME/.zshrc
alias
를 실행해봅니다.
1
$ {단축 명령}
정상적으로 ssh 접속이 되면 성공입니다.
Comments powered by Disqus.