- 本地生成ssh key
使用命令ssh-keygen -t rsa -b 4096
生成ssh key,生成好的路徑在:
- macOS/linux:
~/.ssh/id_rsa.pub
- win:
C:\Users\your-user\.ssh\id_rsa.pub
- 上傳服務器
macOS / Linux機器超級容易:ssh-copy-id your-user-name-on-host@host-fqdn-or-ip-goes-here
windows:使用powershell 運行:
$REMOTEHOST="your-user-name-on-host@host-fqdn-or-ip-goes-here"
scp "$env:USERPROFILE\.ssh\id_rsa.pub" "${REMOTEHOST}:~/tmp.pub"
ssh "$REMOTEHOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
但是我的服務器ssh端口號是改過的,試了一下這個腳本不行,我們手動重現這個過程也不難:
- 服務器上
mkdir -p ~/.ssh && chmod 700 ~/.ssh
- 在本地打開復制public-key
- 服務器
sudo vim ~/.ssh/authorized_keys
, 若里面已經有內容,回車后將復制的內容插入新的一行即可,若沒有直接插入,:wq保存退出。 -
chmod 600 ~/.ssh/authorized_keys
完成
- 上傳服務器更新(2021.06.25)
windows下,如果安裝了git bash, 直接一條命令搞定:
cat id_rsa.pub | ssh root@服務器ip -p 服務器ssh端口 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
如果確定服務器上.ssh文件夾存在,也可以去掉mkdir -p
- 設置服務器允許密鑰登錄:
打開sudo vi /etc/ssh/sshd_config
修改:
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
#注意這里先不要yes,測試成功后再
#PasswordAuthentication no
- 重啟ssh服務并連接測試
service sshd restart
客戶機
ssh root@你的ip -p 你的端口號
沒問題的話就直接連上了
- BOUNS:vscode remote config文件設置:
Host 服務器ip
HostName 服務器ip
Port 服務器端口
User root
IdentityFile C:\\Users\\Roy\\.ssh\\id_rsa
- 如果使用自建
gitlab
,還要注意在gitlab設置中添加自己的id_rsa.pub
; 否則以ssh方式操作git會詢問密碼