引言
2025年05月13日20:21:14
原來一直用的PyCharn來完成代碼在遠程服務器上的運行,但是PyCharm時不時同步代碼會有問題。因此,嘗試用VSCode來完成代碼SSH遠程運行。由于VSCode每次進行SSH連接的時候都要手動輸入密碼,為了解決這個問題在本機上設置SSH密鑰來進行免密登錄。
本機 Macbook Pro
服務器 Ubuntu20.04
打開Mac的終端Terminal,輸入:
cd ~/.ssh
ls -al
可以看見輸出,包含你已有的私鑰和公鑰:
id_rsa
id_rsa.pub
known_hosts
config
你可以用已有的私鑰,然后把公鑰.pub結尾的文件配置到服務器中就行。下面我們重新創建一個全新的SSH私鑰:
ssh-keygen -t rsa -b 4096 -C "yida@macbook" -f ~/.ssh/id_rsa_remote_ubuntu
解釋
- -t rsa: 使用 RSA 加密算法
- -b 4096: 密鑰長度為 4096 位(更安全)
- -C: 注釋信息,便于識別
- -f: 指定密鑰文件名(避免覆蓋已有密鑰)
一直按回車即可!不用輸入密碼。
執行完后,會生成兩個文件:
~/.ssh/id_rsa_remote_ubuntu(私鑰)
~/.ssh/id_rsa_remote_ubuntu.pub(公鑰)
查看公鑰,并復制:
# 查看文件
ls -al
# 輸出公鑰內容
cat id_rsa_remote_ubuntu.pub
# 復制下面內容
ssh-rsa AAAAB3NzaC1yc2EAAssasQCsTslpupZrQqpr1MGbLRysc6g2dO3wDWZiewCnxFdRY15XlfOsD7Y5qkO1fOIFaT4XIQUAz0VsaHDgHZmUQVd14xBtHKliqhNwAynxdgv15lPdWefeqKrYzaGLLXK/ICx6h5xn3uOamyLJaKGEn/ZWWRXtCU2Oqo/BsNK5u5bb1wpgLO+lOSwfYod52VteCwParS0I0Mca3ILeefp4EWypTQRmki0EsBS6pO4k3rlT1Y3yF0ssRp9VXA2GUCJLU1GkdhHxF+fadx5DzJnOVwFdRdxOn5HCNjIgYeBECkwEStcijwAMxHjc5Jtse8JF4kHVismuZWTDt/MhMosJB3JrbbOu+3PaPVqmPQ== yida@macbook
用命令行登錄你的遠程服務器
拷貝公鑰后,在遠程 Ubuntu 上執行:
mkdir -p ~/.ssh
vim ~/.ssh/authorized_keys
# 把你復制的公鑰放到authorized_keys里面
# 保存退出
# 查看是否復制成功,能輸出你的公鑰就OK了。
cat ~/.ssh/authorized_keys
然后,設置權限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
切換到本機在VSCode的~/.ssh/config 中添加配置項,就是告訴機器遠程連接的時候用我的私鑰去和服務器的公鑰匹配,實現免密登錄
# 打開SSH配置文件
vim ~/.ssh/config
# 編輯已有的ssh連接信息
Host ubuntu@4090HostName 222.xxx.xxx.xxxUser ps123Port 123# 新增鏈接到私鑰IdentityFile ~/.ssh/id_rsa_remote_ubuntu
配置完成,即可通過VSCode免密登錄SSH服務器!