SSH 免密登入

2021-09-12 17:05:22 字數 1041 閱讀 3414

假設一切都很順利的話,最簡單的方式如下:

使用ssh-keygen命令在本地生成一對金鑰(public/private key)

使用ssh-copy-id username@your-server-ip命令將本地的公鑰上傳到遠端伺服器

現在使用ssh username@your-server-ip命令即可免密登入了

如果之前已經在本地生成過金鑰了,那第一步都可以省了。怎麼看有沒有生成過:使用ls -a ~/.ssh命令看下是否已經存在 id_rsa 和 id_rsa.pub 檔案,有即生成過。

但往往看別人玩的很嗨,到自己實操了就會出現各種問題。還是那句話:該踩的坑乙個都不會少!如果遇到問題了可以看看下面列舉出來的常見的troubleshooting

如果你在執行ssh-copy-id命令時指定了某個公鑰,比如ssh-copy-id -i ~/.ssh/id_rsa_another.pub username@your-server-ip,此時注意在使用 ssh 命令遠端連線的時候也需要指定這個公鑰,否則預設是會拿 ~/.ssh/id_rsa.pub 去匹配的,所以你的連線命令應該是類似這樣:ssh -i ~/.ssh/id_rsa_another.pub username@your-server-ip

ssh 服務端可能配置了不允許公鑰授權登入。檢視伺服器上的 /etc/ssh/sshd_config 檔案裡是否配置正確:pubkeyauthentication yesssh 服務端可能配置了不允許 root 使用者登入。檢視伺服器上的 /etc/ssh/sshd_config 檔案,其中如果包含permitrootlogin no則將其改為 yes

一張時序圖最能說明問題了 :p

SSH免密登入

a為本地主機 b為遠端主機 生成公鑰私鑰對 ssh keygen t rsa登入遠端機器 ssh root 然後輸入密碼 將.ssh的許可權設為700 mkdir ssh 如果資料夾已存在,跳過 chmod 700 ssh將本地生成的rsa公鑰複製到遠端機器 scp ssh id rsa.pub r...

SSH免密登入

當我們在配置多台計算,使之可以相互使用無密碼登入 ssh,之前都是一台一台的配置,現在一台a上新增b,然後在另一台b上再次新增a,這樣使得authorized keys中的內容相同,但時並不是完全相同,比如新增順序。如果超過2臺,這種配置就相當複雜了,而且容易出錯。後來,在網上看到了一種簡單的配置,...

SSH免密登入

前提 本地和遠端伺服器都已經安裝了ssh 遠端伺服器ip 192.168.1.145 遠端登入使用者 admin 本地命令 1 ssh keygen t rsa p 一路回車 2 scp ssh id rsa.pub admin 192.168.1.145 home admin ssh 3 按提示輸...