ssh public key認證免密碼登錄


ssh 登錄可以使用公鑰認證(ssh public key authentication)。

將客戶端機器的ssh public key添加到服務器的 ~/.ssh/authorized_keys 文件中,可實現ssh的免密碼登錄。

這樣做使得登錄服務器更加安全和快捷。

客戶端生成公鑰和私鑰

生成一個名為test的公鑰和私鑰對,密碼留空不輸入。具體的說明請看這里: ssh-keygen 基本用法

[huqiu@101 ~]$ cd .ssh/
[huqiu@101 .ssh]$ ssh-keygen -t rsa -f test -C "test-key"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

查看公鑰內容

[huqiu@101 .ssh]$ cat test.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAogyXOlD77fWF0bTm0r2HrRf8SKPKWjSv4pZKPZfBHOSZI8B0EDGr5/dpsMCPHUcZBt9v5BgJvLao/znBabap6TWt1yuStDh2rnzXY5uTFah0AiMlnQ7DhjkcctdLfLErz1V2jFTXEC2oGOanLoObpHV+LyeXkn/+i0VekT3QiULSkpzK/gsCtaLmaHLbGxv4GGGAoHtTZrfw09hGo47AeiyxzczcBa7TPXSATVPtCStWk+jzMcIyTyxcE7ORIsClN5xNLnbXiEQF5jOcP0qbjAmOH256E565VFh2WC8srjadfUm6jZLEiE5w7lp2/3rRynAsnF0zjEONE9aPUPhiNw==
test-key

配置公鑰到服務器

將公鑰內容添加到服務器的~/.ssh/authorized_keys 文件中.

alias 實現命令快速登陸

做好配置之后,通過ssh可以直接登錄了。對經常登錄的服務器,可以將ssh登錄命令的alias加到 ~/.bash_profile文件中。

$ cat ~/.bash_profile | grep 101
alias to-101='ssh huqiu@192.168.154.101'

登錄的時候:

$ to-101

無法登錄一般的原因

客戶端的私鑰和公鑰文件位置必須位於 ~/.ssh 下。

確保雙方 ~/.ssh 目錄,父目錄,公鑰私鑰,authorized_keys 文件的權限對當前用戶至少要有執行權限,對其他用戶最多只能有執行權限。

注意git登錄,要求對公鑰和私鑰以及config文件,其他用戶不能有任何權限。

服務器端 ~/.ssh/authorized_keys 文件名確保沒錯 😃.

ssh-copy-id

ssh-copy-id 是一個小腳本,你可以用這個小腳本完成以上工作。這個腳本在linux系統上一般都有。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM