현재 접속한 ssh(클라이언트)에서 원격 접근지 ssh(서버)로 연결을 하려면
기본 ssh 포트(22)일 경우 | ssh 포트가 다를 경우 |
ssh 서버계정@서버ip | ssh -p 서버포트 서버계정@서버ip |
ex) ssh test@111.111.111.111 | ex) ssh -p 8000 test@111.111.111.111 |
위의 명령어를 입력한 다음 패스워드를 매번 입력해줘야 한다.
패스워드를 매번 입력하지 않기 위해
클라이언트에서 ssh인증키를 생성한 후 서버에 등록해주려 한다.
직접 패스워드를 입력해 로그인 하는 것보다
키파일을 생성해 저장해놓는 것이 더안전하다.
추가로 RSA 인증을 위한 비밀 키를 읽어와서 접속하는 방법(옵션 -i)
ssh -i xxx.pem test@111.111.111.111
기본적으로 ssh-keygen이라는 명령어를 이용해 키를 생성 할 수 있다.
명령어
ssh-keygen -t rsa -C "rsa Key" // -t : 키 타입(rsa, dsa), -C : comment(생략가능)
패스워드를 공백으로 입력하면 접속할때 패스워드를 묻지 않는다.
~/.ssh(기본경로) 로 들어가면 키파일이 생성되어있다.
id_rsa : (비공개 키) 타인에게 노출하면 안된다.
id_rsa.pub : (공개 키) 이키를 원격 접근 서버 authorized_keys에 저장해야 한다.
위의 클라이언트에서 생성한 id_rsa.pub(공개키)를 원격서버 authorized_keys에 저장해야 한다.
$cat id_rsa.pub 로 내용을 복사해서
원격서버에서 $cat >> ~/.ssh/authorized_keys 입력후
복사한 내용을 붙여넣은 뒤 엔터로 줄바꿈 해준뒤 ctrl+d로 저장을 해준다.
또는,
key를 추가해주는 유틸리티를 사용하면 더 안전하다
클라이언트에서 ssh-copy-id id_rsa.pub 서버계정@서버id 실행시 서버의 authorized_keys에 추가가 된다.
기본포트가 아닐 경우 ssh-copy-id id_rsa.pub '-p 포트 서버계정@서버id'
이후
ssh -p 서버포트 서버계정@서버ip 접속시 패스워드를 묻지 않는다.
패스워드를 물어보는 경우!!
원격서버의 ~/.ssh 디렉토리 권한은 700이어야 하고.
authorized_keys 파일의 권한은 600이어야 한다.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
현재 본인ssh = 클라이언트, 원격으로 붙을 ssh = 서버
1. 클라이언트에서 키 생성. 명령어 => $ssh-keygen -t rsa
2. 클라이언트 ~/.ssh 경로에서 만들어진 키 확인
3. 클라이언트에서 만들어진 id_rsa.pub(공개키) 파일을 복사. 명령어 => cat id_rsa
4. 서버로 접속하여 ~/.ssh경로의 authorized_keys 파일에 복사한 키값 붙여넣기
명령어 => cat >> authorized_keys 에 붙여넣고 줄바꿈 후 ctrl+d로 저장
5. 클라이언트에서 (ssh 서버계정@서버ip) 로 접속
6. 패스워드를 물어볼 경우 서버측 디렉토리 권한 확인
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
참고링크
velog.io/@solar/SSH-%EC%9D%B8%EC%A6%9D%ED%82%A4-%EC%83%9D%EC%84%B1-%EB%B0%8F-%EC%84%9C%EB%B2%84%EC%97%90-%EB%93%B1%EB%A1%9D-%EA%B0%84%ED%8E%B8%ED%95%98%EA%B2%8C-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0app-developer.tistory.com/191
host 명령어 (0) | 2021.04.01 |
---|---|
CentOS 7 설치 및 초기 셋팅 (0) | 2021.04.01 |
외부 서버로 파일 전송(scp, rsync) (0) | 2021.03.31 |
오라클 구동 및 중지 (0) | 2021.03.31 |
권한(Permission) (0) | 2021.03.09 |