본문 바로가기

Ubuntu

docker ssh통신 key gen 후 복사

docker container끼리 SSH 통신 : 필자의 경우는 (airflow에서 dag를 작성하고 commands로 데이터 파이프라인 .py 실행)

docker container는 그 하나의 container가 각각의 다른 컴퓨터로 생각하는게 편하다.


컨테이너 끼리의 ssh통신은 ex ) pyspark 컨테이너에서 실행할 때 ssh key-gen을 통해 키를 발급하고 airflow container에 넣어야하고 서버에서 가져올때 서버의 바스티온을 pyspark에서 열어놔야한다 .

(docker exec -it -d [container name] ssh~~~)

 

 


필수!

$ service ssh start

접속할 컨테이너에서 키를 발급

$ ssh-keygen -t rsa

엔터 연타!!(출처에 들어가면 옵션에 대한 내용을 알수있다.)

  • id_rsa: 비밀키
  • id_rsa.pub: 공개키

키를 전달해 주기 전에 해야되는 작업

$nano /etc/ssh/sshd_config

에서

  • PermitRootLogin yes
    을 허용해줘야한다. --> root 로그인을 허용해주는 명령어인데 허용해서 키전달을하고 다시 주석처리하면 다시 root로 로그인 불과.
    새로운 계정을 만들고 사용해야되는 폴더에 권한을 부여해아한다.
  • (보안이 취약)

ssh-copy-id는 현재 컨테이너에 저장된 모든 공개키를 전송 (접속할 컨테이너에서 나는 airflow컨테이너)


  • 포트 22가 아닐경우
$ scp -P 3000 ~/.ssh/id_rsa.pub user@hostname:/id_rsa.pub $ scp -P [portnum] ~/.ssh/id_rsa.pub [username]@[ip addres]:/id_rsa.pub

$ ssh-copy-id user@hostname
$ ssh-copy-id [username]@[ip주소]

ssh로 명령어를 받는 컨테이너에서 (명령어를 실행하는 컨테이너)


  • 포트 22가 아닐경우 먼저 해야 하는 작업
$ touch ~/.ssh/authorized_keys
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

$ chmod 0700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

설정파일 /etc/ssh/sshd_config을 열어 아래 항목들의 주석을 제거하거나 없는 경우 추가합니다.

  • RSAAuthentication yes
  • PubkeyAuthentication yes
  • AuthorizedKeysFile .ssh/authorized_keys
  • PasswordAuthentication no
  • AllowUsers [a],[b],[c]

* root PermitRootLogin no 했을때는 root로 로그인 하지못한다.

출처 : https://jeonghwan-kim.github.io/%EC%9B%90%EA%B2%A9%EB%A1%9C%EA%B7%B8%EC%9D%B8ssh-%EC%A0%91%EC%86%8D/

https://hbase.tistory.com/9

'Ubuntu' 카테고리의 다른 글

Crontab  (0) 2021.11.25
ubuntu 업데이트 오류시 검정화면 ...시 대처  (0) 2021.08.10
SSH KEY 생성하기  (0) 2021.07.05
우분투 인코딩 변경~  (0) 2021.06.24
trans-mission 설치  (0) 2020.11.08