일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kitura
- ubuntu
- perfect
- Jupyter
- nmap
- centos
- postgres
- postgresql
- SWIFT
- insert
- STF
- PYTHON
- ftp
- port forwarding
- mysql
- 실행권한
- rethinkdb
- appium server
- nohup
- openpyxl
- ssh
- Jupyter Notebook
- STF_PortForwarding
- Materials
- appium
- GoCD
- 28015
- sshpass
- nGrinder
- create table
- Today
- Total
don't stop believing
ssh 패스워드 없이 자동 로그인 본문
뭔가 한참을 해매다 간단한 방법을 찾았습니다.
Linux 서버에 접속하기 위해서는 ssh를 이용하며 비번이 필요 합니다.
ssh 공개키를 서버에 간단하게 배포하고 비번없이 접속하는 방법을 확인해 봅시다.
우선 접속하려는 클라이언트 Linux에 sshpass를 설치합니다.
$ sudo apt-get install sshpass
그리고 클라이언트 Linux에 ssh 키를 생성합니다.
$ ssh-keygen
그리면 .ssh/ 경로에 id_rsa id_rsa.pub 두 개의 파일이 생성됩니다.
.ssh/id_rsa 파일은 개인키 파일이고 .ssh/id_rsa.pub 파일은 공개키 파일입니다.
이제 sshpass를 이용해 서버 Linux에 접속해 봅니다.
$ sshpass -p "password1234" ssh macaron@192.168.1.12
-p 옵션으로 패스워드를 입력해 접속할 수 있습니다.
서버측 Linux에 접속 확인 되었다면 ssh-copy-id 명령을 이용해 공개키를 서버측에 전달합니다.
$ sshpass -p "password1234" ssh-copy-id macaron@192.168.1.12
이제 서버측 Linux에서 .ssh에 대한 권한을 변경해 줘야 합니다.
$ chmod 700 ~/.ssh/ $ chmod 600 ~/.ssh/authorized_keys
이제 클라이언트 Linux에서 ssh로 접속해 봅니다.
$ ssh macaron@192.168.1.12
비밀번호 입력 없이 서버측 Linux에 접속되는 것을 확인할 수 있습니다.
** Jenkins에서 Build의 execute shell 등에서 사용할 경우 jenkins 계정으로 ssh 키를 만들고 배포해야 합니다. **
우선 Jenkins 서버에서 아래 명령으로 jenkins 계정으로 변경합니다.
$ sudo su -s /bin/bash jenkins
이후 ngle에 대한 비번을 입력하면 됩니다. 이후 변경된 jenkins 계정으로 ssh-keygen 으로 key를 생성해 줍니다. 생성된 key는 /var/lib/jenkins/.ssh에 있습니다. 해당 경로로 이동 후 ssh-copy-id로 key를 넘겨주면 됩니다.
$ cd /var/lib/jenkins/ $ sshpass -p "password1234" ssh-copy-id macaron@192.168.1.12 $ ssh macaron@192.168.1.12
'Linux > Ubuntu' 카테고리의 다른 글
apt-get 으로 install 할때 403 에러 (apt source list를 바꾸자) (2) | 2018.03.09 |
---|---|
[Ubuntu] Swift 4 설치하기 (0) | 2018.03.09 |
nmap으로 열려있는 포트 확인 (0) | 2017.12.20 |
curl을 이용해 ftp 파일 다운로드 하기 (0) | 2017.09.27 |
Ubuntu locale 변경 (0) | 2017.09.22 |