免密碼方式(public key)登入具備SSH Server的Container
繼續上篇:具備ssh server的Dockerfile,這裡學習如何以免密碼方式登入具備SSH Server的Container。
我在很久以前就有用過免密碼登入(舊文:SSH免密碼登入),只是一直沒有真正的需要去,直到我開使用VSCode與Container。
1. 確認當前使用者的key
要先你的電腦有沒有已經在使用的key,避免被覆蓋掉。
ls -l $HOME/.ssh/id_*
通常是用rsa所以會有id_rsa和id_rsa.pub
沒有才用ssh-keygen產生本機使用者的public/private key
ssh-keygen -b 4096 -t rsa
2. 拷貝本機使用者的key進去container
podman exec -it sshd-instance /bin/bash -c "mkdir /root/.ssh/"
podman cp $HOME/.ssh/id_rsa.pub sshd-instance:/root/.ssh/authorized_keys
podman exec -it sshd-instance /bin/bash -c "chmod 660 /root/.ssh/authorized_keys"
- 因為/root/.ssh目錄可能不存在,所以需要用mkdir -p去遞迴建立目錄。
- 再把本機使用者的pubkey進入container,/root/.ssh/authorized_keys是為了讓ssh server確認是可以登入的public key。
- 最後去改權限。
如果root可以直接進入或是用密碼進入的話可以用ssh-copy-id,但是因為我們前篇的docker image是不允許root登入。
ssh-copy-id -p 2222 root@127.0.0.1
3. 測試ssh連線
ssh root@127.0.0.1 -p 2222
留言