在上一篇 Day01-建立 ubuntu vm 和 docker 使用 PVE 有幾處沒講清楚的地方,如 .ssh/authorized_keys
和 ssh 那串指令。今天我們就來說明這方面該如何設定。
首先, SSH(Secure Shell) 安全殼層可以安全的讓電腦之間利用網路協定進行連線。一般來說 ubuntu 打開 ssh 的服務後,如果有設定防火牆的話需要開放 port 22。然後就可以直接使用 ssh <user_name>@<host_name>
進行連線。其中 <user_name>
需要填使用者的名稱,而 <host_name>
可以填設定好的網域或者填機器的網路 IP 也行。然後連線之後會要求去填密碼,就按當初設定該用戶時的密碼去填即可。
註: 如果想要在外網連線的話則需要根據設定好的網路環境進行挑整。如設定 VPN 或是內網穿透。
當然除了使用指令去連線外,亦可以設定 authorized_keys
去連線。好處是不用記不同機器不一樣的使用者密碼。以下是聯線的大體步驟:
本地端
建立 key
ssh-keygen -t ed25519 -C "<email_address>"
C:\Users\<user_name>\.ssh\
~/.ssh/
指令完成後會有 id_ed25519(私鑰), id_ed25519.pub(公鑰)
將公鑰內容記起來,然後在 伺服器
使用者家目錄下的 .ssh 檔案(/home/<user_name>/.ssh/authorized_keys) 把剛剛公鑰的內容複製貼上。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
在 本地端
設定 ~/.ssh/config
並連線
~/.ssh/config
範例
Host <host_name or others>
HostName <host_name>
User <user_name>
IdentityFile ~/.ssh/id_ed25519
其中 <host_name or others>
名字可以隨便取,然後<host_name>
, <user_name>
跟之前 ssh 連線的指令一樣。選擇軟體去做 ssh 連線
ssh <user_name>@<host_name>
~/.ssh/config
~/.ssh/config
ssh <user_name>@<host_name>
<host_name>
,然後勾選 specify username,並在裡面填你的使用者,port 除非有自行變動,不然不用改